add arkworks prover measurements

This commit is contained in:
Balazs Komuves 2024-11-15 18:31:13 +01:00
parent ad503d4e10
commit d3cfb2035f
No known key found for this signature in database
GPG Key ID: F63B7AEF18435562
1 changed files with 11 additions and 8 deletions

View File

@ -18,14 +18,15 @@ To have an overview of what all the different steps and files are, see [PROOFS.m
### Some benchmarks
Approximate time to run this on an M2 (8+4 cores), with 10 samples:
Approximate time to run this on an M2 macbook pro (8+4 cores), with 10 samples:
- compiling the circuit: 8 seconds
- circuit-specific setup (with 1 contributor): 85 seconds
- size of the `.zkey` file (only 1 contributor): 110 megabytes
- generating the witness (WASM): 0.3 seconds
- proving with `snarkjs` (slow): 7.7 seconds
- proving wiht `zikkurat` (single threaded): 13 seconds
- proving wiht `zikkurat` (single threaded!): 13 seconds
- proving with `arkworks`: 4.4 seconds (loading the zkey: 6 seconds)
- proving with `nim-groth16` (old version): 2 seconds
Same with 50 samples:
@ -35,7 +36,8 @@ Same with 50 samples:
- `.zkey` file: 525 megabytes
- generating the witness (WASM): 1.2 seconds
- proving with `snarkjs`: 36 seconds
- proving wiht `zikkurat` (single threaded): 52 seconds
- proving wiht `zikkurat` (single threaded!): 52 seconds
- proving with `arkworks`: 19.8 seconds (loading the zkey: 33 seconds)
- proving with `nim-groth16` (old version): 9.4 seconds
And with 100 samples:
@ -45,15 +47,16 @@ And with 100 samples:
- `.zkey` file
- generating the witness (WASM): 2.3 seconds
- proving with `snarkjs`: 76 seconds
- proving wiht `zikkurat` (single threaded): 102 seconds
- proving wiht `zikkurat` (single threaded!): 102 seconds
- proving with `arkworks`: 41 seconds (loading the zkey: 66 seconds)
- proving with `nim-groth16` (old version): 18 seconds
TODO:
- add `arkworks` prover
- add `rapidsnarks` prover (doesn't run on ARM)
- update `nim-groth16` to `constantine-0.1` (should be faster because no workarounds)
- add multithreading to `zikkurat`
- [x] add `arkworks` prover
- [ ] add `rapidsnarks` prover (doesn't run on ARM...)
- [ ] update `nim-groth16` to `constantine-0.1` (should be faster because no workarounds)
- [ ] add multithreading to `zikkurat`
### Preliminaries