Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.4.0 #378

Merged
merged 35 commits into from
Feb 15, 2024
Merged

Release v1.4.0 #378

merged 35 commits into from
Feb 15, 2024

Conversation

DmytroTym
Copy link
Contributor

@DmytroTym DmytroTym commented Feb 15, 2024

Contents of this release

[FEAT]: support for multi-device execution: #356
[FEAT]: full support for new mixed-radix NTT: #367, #368 and #371
[FEAT]: examples for Poseidon hash and tree builder based on it (currently only on C++ side): #375
[PERF]: MSM performance upgrades & zero point handling: #372

DmytroTym and others added 30 commits February 5, 2024 13:14
Add missed bump to dev
If domain has size 2^17, NTT on size 2^16 coset generated by `-1` fails. This happens due to index in `BatchMulKernel` overflowing, fixed by using `long` instead of `int`.
* BW scalar field is now the same as BLS base field

* add poseidon

* add merkle tree builder

* poseidon rust bindings

* implement rust bindings

* add doc comments

* remove global poseidon constants

* add custom constants API and script for generating new constants

* add the rest of the curves for poseidon

* add all the curves for real

* misname bls12-377

* typo

* partial rounds

* minor fixes

* small tweak for big performance boost

* add CHK_INIT_IF_RETURN

---------

Co-authored-by: DmytroTym <dmytrotym1@gmail.com>
Co-authored-by: hadaringonyama <hadar@ingonyama.com>
Change rust example deps to use paths

Co-authored-by: Leon Hibnik <107353745+LeonHibnik@users.noreply.github.com>
* fix display and debug traits

* leave only one impl for printing scalars
Co-authored-by: hadaringonyama <hadar@ingonyama.com>
- Mixed-radix NTT orderings support
- radix-2 small refactor: split core logic to function and renamed ct_butterfly to dit
- testing both radix2 and mixed-radix algs for all ntt tests
NTTConfig -> PoseidonConfig
multi-GPU support
#365 but without Rust which
for now doesn't work.
ChickenLover and others added 4 commits February 15, 2024 16:10
This PR fixes the conflicts between main and dev
Co-authored-by: Leon Hibnik <107353745+LeonHibnik@users.noreply.github.com>
* Improved MSM

* Zero point handling in large buckets

* Fixed affine zero point conversion for arkworks

* cargo fmt

* Addressed comments

* MSM comments

* All zero scalars case handled

* clang format
@yshekel
Copy link
Collaborator

yshekel commented Feb 15, 2024

I verified the ntt part and it is correct.
Seems that there are some commits here that we'd better squash (like merge WIP, merge NTT part, answer roman's comment) but not squash all of it to one commit.

Edit: also need to add MSM improvements to the PR description

@LeonHibnik LeonHibnik self-requested a review February 15, 2024 20:18
@DmytroTym DmytroTym merged commit 15a63cc into main Feb 15, 2024
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants