-
Notifications
You must be signed in to change notification settings - Fork 69
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
MSM performance benefits for Groth16 #54
Comments
This is not true. This library has literally no dependencies (build-dependencies don't count). Arkworks is used in the test suite purely for verification purposes. |
The trouble is that any "quick" thing is more likely to fail to deliver the expected improvement. At least based on what we've seen. Orchestrating the data flow and more tight integration with application is the key. See https://github.com/supranational/supra_seal/tree/main/c2 for an example. Well, "see" is a bit of a misnomer, because you're unlikely to figure it out just like that. The keyword is rather that it takes over a bigger section of the prover in order to |
Though there is another caveat. Current MSM implementation is oversensitive to repeating bit patterns in scalars. I mean if scalars have some bit structure, and some provers were observed to produce more repetitive patterns than others, current MSM implementation would tend to underperform. The reason for why the issue is not resolved is because there was no strong motivating factor so far... |
Just in case, this is Groth16, a demanding one, operating on vectors with ~2**27 elements. And the payoff was absolutely worth the effort. |
Hi! After quickly replacing the
VariableBaseMSM::multi_scalar_mul
invocations here withmsm_cuda::multi_scalar_mult_arkworks
, I am not noticing any performance difference. Does that make sense, or am I using it incorrectly? I'm using a Tesla T4.Edit: Running
cargo build --release --features=bn254 -vv
shows a lot ofstable-x86_64-unknown-linux-gnu
... and after installingnvidia-cuda-toolkit
, I think I am having gcc incompatibility issuesEdit2: It compiled now after updating CUDA. Benchmark is failing:
Edit3: Seems to work now for some reason. Is there a specific reason this library uses v0.3 of arkworks?
The text was updated successfully, but these errors were encountered: