-
Notifications
You must be signed in to change notification settings - Fork 416
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: BW6 pairing computation using non-native Eval #1312
Conversation
3c1bba3
to
7ab4060
Compare
7ab4060
to
df0f020
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.
Looks great!
I just did some experiments with the new Eval method + other variants of cyclotomic squares. It turns out that Granger-Scott Eval is better for 1 and 2 consecutive squares compared to Karabina. I pushed a commit.
Actually |
Also slight optimization of Karabina decompression Eval which saves an additional 11k scs. Full pairing is now 6,920,110 scs. |
Full pairing is now 6919174 scs. |
Description
This PR refactors the methods in the fields_bw6761 package to use the
Field.Eval
methods introduced in #1299. Depends on it being merged first.Currently we use simple schoolbook multiplication formulas, but can have better performance with specialized formulas a la Toom-Cook etc. Currently didn't find a good way to give a multivariate representation to them.
Type of change
How has this been tested?
How has this been benchmarked?
But keep in mind that I only measured single operations so they include range checks for the initial witness.
Checklist:
golangci-lint
does not output errors locally