-
Notifications
You must be signed in to change notification settings - Fork 231
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
perf!: use icicle msm #426
Conversation
0c236b2
to
06afe6b
Compare
06afe6b
to
c21fb4c
Compare
c21fb4c
to
ecb4904
Compare
1937640
to
9fb43f1
Compare
9fb43f1
to
8e09c07
Compare
8e09c07
to
7624e42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
7624e42
to
78e3f13
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you rebase to remove the first 5 commits?
c300a70
Please change to “…different types of commitments”
tachyon/math/elliptic_curves/msm/algorithms/icicle/icicle_msm.h
Outdated
Show resolved
Hide resolved
How about adding GPU benchmark as well? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First of all, I only reviewed the Bazel part related to icicle.
One can retrieve `ScalarField` from a template parameter `Point`.
78e3f13
to
bbd293f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Description
This PR integrates icicle MSM for improved performance!
Previously, the MSM GPU interface accepted input directly from GPU memory, which complicated the use of MSM GPU for the KZG commitment scheme. While we could implement this for previous algorithms, such as Bellman MSM and CUZK, they were slow when dealing with non-random scalar distributions. The advantages of using icicle are twofold: (1) it supports input from CPU memory, and (2) it performs well even with non-random scalar distributions. Consequently, this PR removes the previous implementations and adopts icicle exclusively.