diff --git a/workflow/BENCHMARKS.md b/workflow/BENCHMARKS.md index f3770e0..a040173 100644 --- a/workflow/BENCHMARKS.md +++ b/workflow/BENCHMARKS.md @@ -23,19 +23,44 @@ The following operations were benchmarked: - **Prove Circuit**: Time taken to generate a proof for the constructed circuit. - **Verify Circuit**: Time taken to verify the generated proof. -#### Build Time +## Bench Results +The following is the result of running the codex storage proof circuit (sample_cells). +The bench uses the Goldilocks field and Poseidon2 Hash. All results were run on Mac Mini with M2 Pro and 16GB RAM. +### Bench params +The benchmark runs with the default params which are the following: -#### Prove Time +```bash +export MAXDEPTH=32 # Maximum depth of the slot tree +export MAXSLOTS=256 # Maximum number of slots +export CELLSIZE=2048 # Cell size in bytes +export BLOCKSIZE=65536 # Block size in bytes +export NSAMPLES=5 # Number of samples to prove +export ENTROPY=1234567 # External randomness +export SEED=12345 # Seed for creating fake data -#### Verify Time +export NSLOTS=11 # Number of slots in the dataset +export SLOTINDEX=3 # Which slot to prove (0..NSLOTS-1) +export NCELLS=512 # Number of cells in this slot +``` +### Build Time +Build time for plonky2 circuits is 39.644 ms. +Baseline Groth16 with same params: 61 seconds for the circuit specific setup. -#### Proof Size +### Prove Time +Prove time for plonky2 circuits is 53.940 ms. +Baseline Groth16 with same params: 4.56 seconds using snarkjs +improvement: approx 80x -#### Peak Memory Usage +### Verify Time +To be done once recursion is added to the codebase. +### Proof Size +Plonky Proof size: 116008 bytes +This is without recursion or Groth16 wrapper. -### Remarks +### Peak Memory Usage +To be done.