-
Notifications
You must be signed in to change notification settings - Fork 3
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
Optimization: compute_eval_table_sparse + combine_evals #1
Comments
Additionally I don't think that we need to write out the zero-ed A_evals, B_evals and C_evals before computing the weighted sum. Zero allocation appears to cost 30-50% of the total looptime. |
Here is the density map of the A, B, C matrices for the jolt_single_step circuit:
|
Guessing this would be faster if we could order by |
Srinath does not think the code depends on |
https://github.com/a16z/Spartan2/blob/uniform_r1cs_shape/src/spartan/snark.rs#L238-L285
The compute_eval_table_sparse lambda and the following combination of the evaluations comprise ~12.5% of the end-to-end Spartan2 flow.
I see three primary performance bugs.
a + r * b + r * r * c
can be inlined such that the valuesa / b / c
are used directly after computation rather than storing, throwing away, and reloading from RAM.The text was updated successfully, but these errors were encountered: