Skip to content

Latest commit

 

History

History
109 lines (79 loc) · 3.4 KB

File metadata and controls

109 lines (79 loc) · 3.4 KB

Aggregation Mode Benchmark Results

Machine Specifications

  • GPU: NVIDIA RTX 3090 (24GB VRAM)
  • RAM: 32GB
  • CPU: AMD EPYC 7443 (24-Core)
  • Operating System: Ubuntu

Benchmark Setup

  • Total Proofs: 3968
  • Proofs per Chunk: 128
  • Total Chunks: 32

Notes

  • The total number of proofs (3968) is the maximum that can be aggregated in a single run, limited by blob capacity.
  • Increasing the proofs per chunk generally improves performance, but requires more powerful hardware to avoid out of memory.
  • In this benches the Aligned infrastructure was setup locally in the same machine using ethereum-package.

Reproduce it

The step by step to run the benchmarks:

  1. Deploy aligned infrastructure locally with ethereum-package.
  2. Fund a wallet on aligned, for example with rich account number 7:
cargo run --release -- deposit-to-batcher \
    --network devnet \
    --private_key 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356 \
    --amount 1ether
  1. Send 3968 fibonacci proofs for Risc0 and Sp1:
cd batcher/aligned

## Send SP1 Proofs
cargo run --release -- submit \
    --proving_system SP1 \
    --proof ../../scripts/test_files/sp1/sp1_fibonacci_5_0_0.proof \
    --vm_program ../../scripts/test_files/sp1/sp1_fibonacci_5_0_0.elf \
    --repetitions 1000 \
    --private_key 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356 \
    --instant_fee_estimate \
    --network devnet \
    --random_address

## Send Risc0 Proofs
 cargo run --release -- submit \
    --proving_system Risc0 \
    --proof ../../scripts/test_files/risc_zero/fibonacci_proof_generator/risc_zero_fibonacci_2_0.proof \       -
    --vm_program ../../scripts/test_files/risc_zero/fibonacci_proof_generator/fibonacci_id_2_0.bin \
    --public_input ../../scripts/test_files/risc_zero/fibonacci_proof_generator/risc_zero_fibonacci_2_0.pub \
    --repetitions 3968 \
    --private_key 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356
  1. Modify the proofs_per_chunk in config-files/config-proof-aggregator-ethereum-package.yaml to 128.
  2. Run the aggregator with time:
time make start_proof_aggregator_gpu_ethereum_package AGGREGATOR=sp1
time make start_proof_aggregator_gpu_ethereum_package AGGREGATOR=risc0

RISC Zero (Risc0)

  • Start Time: 14:28:36
  • Aggregation Start: 14:33:32
  • End Time: 16:46:28

Performance Summary:

  • Verification Time (Start to Aggregation Start): 4 minutes 56 seconds
  • Aggregation Time (Agg to End): 132.93 minutes
  • Total Time (Start to End): 137.87 minutes

SP1

  • Start Time: 21:52:55
  • Aggregation Start: 22:26:40
  • End Time: 23:24:42

Performance Summary:

  • Verification Time (Start to Aggregation Start): 33 minutes 45 seconds
  • Aggregation Time (Agg to End): 31 minutes 47 seconds
  • Total Time (Start to End): 92 minutes

Comparison Summary

Risc0 SP1
Verification Time 4 min 56 sec 33 min 45 sec
Aggregation Time 132.93 min 31 min 47 sec
Total Time 137.87 min 92 min

Note:
SP1 longer verification time is due to the big overhead in setting up the prover client to verify the proof when it is fetched.