v2.7.0
Summary
Concrete v2.7.0 includes several key enhancements and new features:
-
GPU backend: Concrete comes for the first time with a GPU wheel! To facilitate this, we have set up a public Zama PyPI repository at https://pypi.zama.ai/. Here, you can find stable, release candidate (rc), and nightly wheels for both CPU and GPU.
-
Module optimizations: FHE modules have been improved. Users can now describe the wiring between module functions, allowing for better compilation and optimization of complex programs.
-
New features and fixes: As with all new Concrete releases, this version introduces several new features, including fancy indexing, dynamic assignement/indexing, overflow detection in simulation and some bug fixes.
What's Changed
New features
- Create and improve GPU backend and runtime, deliver GPU wheels by @antoniupop in #786, @youben11 in #855 #877 #879 #878 #882, @andidr in #748
- Introduce wiring API for FHE modules by @aPere3 in #771 #803 #826 #828 #845 #890 #895
- New python operators by @umut-sahin, fancy indexing and assignment in #814, dynamic indexing in #847, dynamic assignment in #867
- Overflow detection in simulation by @youben11 in #777 #846 #850
- Release concrete-python stable, rc and nightlies to new zama public pypi by @youben11 in #818 #833 #837 #838
Improvements
- Optimize extract bits by @rudy-6-4 in #769
- Improve documentation by @bcm-at-zama, @yuxizama, @aquint-zama, @youben11, @sukrucildirr and @miles-six in #780 #756 #781 #704 @bcm-at-zama in #784 #782 #794 #793 #795 #799 #791 #811 #816 #876 #834 #839 #840 #830 #835 #863 #864
- Add a new options to run in simulation mode with standard FHE flow #892
- Add option to configure tlu on original bit width by @umut-sahin in #785
- Allow concat with only one operand by @BourgerieQuentin in #805
- Add memory usage per location in statistics by @umut-sahin in #808
- Allow uncompressed ciphertext in compressed gate by @BourgerieQuentin in #860
Fixes
- Fix maxpool operator by @umut-sahin in #875
- Fix compress ciphertext + simulation in #778
- Fix key size statistics by @BourgerieQuentin in #783
- Catch-all for exceptions for error reporting by @aPere3 in #776
- Increases deserialization limit for values by @aPere3 in #789
- Decompression of evaluation keys was done several times by @BourgerieQuentin in #809
- Change input bit-width only when tlu is optimized based on original bit-width during table generation by @umut-sahin in #849
- Fix input parameter deserialization by @antoniupop in #857
- Ensures the numpy version is inferior to 2.0 by @aPere3 in #898
Resources
-
Documentation:
-
Demo & Examples:
- Adding a SHA1 tutorial with modules
-
Full Changelog: v2.6.0...v2.7.0