Releases: ingonyama-zk/icicle
Release v1.10.0
This version adds Inplace NTT in Rust, reduced compilation time in Rust, matrix transposing on device and the option to release a NTT domain
What's Changed
- fix: NTT release domain linkage by @yshekel in #452
- fix: use the log2 in lib std explicitly to prevent makefile from link… by @JimmyHongjichuan in #459
- add golang multigpu to sidebar by @LeonHibnik in #449
- NTT inplace in Rust by @DmytroTym in #453
- Fix Golang TestNttDeviceAsync by @LeonHibnik in #461
- [FEAT]: golang device slice ranges by @jeremyfelder in #463
- Devmode to Reduce compilation time (including G2 and ECNTT) by @vhnatyk in #395
- transpose kernel in vec_ops and rust binding by @vladfdp in #462
- [FEAT] ReleaseDomain API by @LeonHibnik in #465
New Contributors
- @JimmyHongjichuan made their first contribution in #459
- @vladfdp made their first contribution in #462
Full Changelog: v1.9.1...v1.10.0
Release v1.9.1
Hotfix for ECNTT on large sizes, fix for future polynomial API
What's Changed
- fix: NTT input is const by @yshekel in #444
- Docs 1.8 by @ImmanuelSegol in #436
- Update Hall of fame in 'README.md' by @Otsar-Raikou in #445
- hotfix for large ecntt by @vhnatyk in #448
Full Changelog: v1.9.0...v1.9.1
Release v1.9.0
This release introduces ECNTT APi on Golang, Keccak hash function in C++, faster build times for cuda 12.2+ and other improvements
What's Changed
- tidy by @ChickenLover in #437
- Use multi-threaded CUDA compilation to spped up compilation by @svpolonsky in #439
- (1) MSM scalars and points params are const and (2) missing NTTAlgorithm in golang NTTConfig by @yshekel in #438
- Add Keccak hash function by @ChickenLover in #435
- Golang bindings for ECNTT by @jeremyfelder and @nonam3e in #433
- Removed "machines using ICICLE" static badge by @Otsar-Raikou in #442
Known Issues
- ECNTT is not supported in Rust at this time
- Golang bindings currently do not support:
- Poseidon
- NTT batch column mode supported only in MixedRadix mode
- ECNTT is supported only in Radix2 mode
- We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release
Full Changelog: v1.8.0...v1.9.0
Release v1.8.0
This release contains MultiGPU API for Golang, MSM pre-computation, NTT column batch API and general improvements
What's Changed
- feat: add warmup for CudaStream by @alxiong in #422
- Fix release flow with deploy key and caching by @jeremyfelder in #425
- update go install source in Dockerfile by @cyl19970726 in #428
- FEAT: MultiGPU for golang bindings by @jeremyfelder in #417
- NTT columns batch by @HadarIngonyama in #424
- MSM pre-computation by @DmytroTym in #427
New Contributors
- @alxiong made their first contribution in #422
- @cyl19970726 made their first contribution in #428
Known issues
- Golang bindings currently do not support:
- Poseidon
- ECNTT
- NTT batch column mode supported only in MixedRadix mode
- We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release
Full Changelog: v1.7.0...v1.8.0
Release v1.7.0
This release contains some documentation updates and general code cleanup.
What's Changed
- fix docs base url by @ImmanuelSegol in #408
- Added badges by @Otsar-Raikou in #409
- Vec ops docs by @ImmanuelSegol in #410
- fix-primitives-links by @ImmanuelSegol in #411
- minor changes to cuda by @ChickenLover in #414
- Fix the changed files glob pattern by @jeremyfelder in #419
- Fix go setup in CI by @jeremyfelder in #420
- Small features by @ChickenLover in #415
- golang docs by @ImmanuelSegol in #413
- Release flow CI by @jeremyfelder in #423
Known issues
- Golang bindings do not support:
- Poseidon
- Multi GPU
- ECNTT
- We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release
Full Changelog: v1.6.0...v1.7.0
v1.6.0
What's Changed
- CI: move to language specific flows (#398) by @jeremyfelder
- Pedersen commitment example in c++ (#397) by @svpolonsky
- Add vector operations for golang bindings (#399) by @jeremyfelder
- Migrate docs website + improved docs (#389) by @ImmanuelSegol
Known issues
- Golang bindings do not support:
- Poseidon
- Multi GPU
- ECNTT
- We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release
Full Changelog: v1.5.0...v1.6.0
Release v1.5.0
This version introduces vector operations on the Rust bindings, brings Golang bindings into the 1.x version, small NTT improvements, implementation of Grumpkin curve with Rust bindings and more examples.
Big shout out to @nonam3e for adding support for Grumpkin curve 💪🏻 🚀
What's Changed
- Update README.md by @ChickenLover in #385
- updates example compares Radix2 and MixedRadix NTTs by @svpolonsky in #383
- Temp/stas/muli gpu example by @svpolonsky in #381
- add vector operations bindings to Rust by @ChickenLover in #384
- update examples with new vec ops by @ChickenLover in #388
- Grumpkin curve implementation by @nonam3e in #379
- feature: mixed-radix NTT fast twiddles mode by @yshekel in #382
- Update README.md (#385) by @ChickenLover in #387
- Update Hall of Fame section by @ChickenLover in #394
- add rust poseidon example by @ChickenLover in #392
- GoLang bindings for v1.x by @jeremyfelder in #386
- Release v1.5.0 by @jeremyfelder in #393
New Contributors
Known issues
- Golang bindings do not support:
- Vector Operations
- Poseidon
- Multi GPU
- ECNTT
- We plan to change Rust-side
HostOrDeviceSlice
in a breaking way in the next release
Full Changelog: v1.4.0...v1.5.0
Release v1.4.0
This version introduces multi-device execution, improved MSM and NTT and more examples.
What's changed
- ICICLE can now utilise more than one GPU thanks to @vhnatyk in #356
- Our new mixed-radix NTT now supports cosets, batch mode and different orderings by @yshekel and @HadarIngonyama in #367, #368 and #371
- Poseidon examples by @ImmanuelSegol and @svpolonsky in #375
- MSM performance improvements and zero point handling by @DmytroTym in #372
Known issues
- Golang bindings are missing.
- We feel the need to change
HostOrDeviceSlice
in Rust bindings asap, probably in a breaking way.
Full changeling: v1.3.0...v1.4.0
Release v1.3.0
This version introduces an updated NTT design using a mixed-radix approach
What's Changed
- Mixed-radix NTT algorithm by @yshekel and @HadarIngonyama in #348, #367, #368
- Fix: examples path deps by @jeremyfelder in #363
- Add concurrency group to examples workflow by @jeremyfelder in #361
Known issues
- Golang bindings are missing
- In Cmake, if CMAKE_BUILD_TYPE is Debug and not Release, the build is very slow and memory-heavy.
Full Changelog: v1.2.0...v1.3.0
Release v1.2.0
This version introduces support for Poseidon hash and Merkle trees using Poseidon Hash.
What's Changed
- Implement Poseidon and TreeBuilder by @ChickenLover in #352
- Fixed overflow in large coset NTTs by @DmytroTym in #358
Known issues
- Golang bindings are missing
- In Cmake, if CMAKE_BUILD_TYPE is Debug and not Release, the build is very slow and memory-heavy.
Full Changelog: v1.1.0...v1.2.0