Fix benches so it varies the number of constraints in the augmented circuit in powers of 2 (#97) * vary the number of constraints in the step circuit * use a different starting state
Srinath Setty srinath@microsoft.com
Thu, 21 Jul 2022 15:00:01 -0700
2 files changed,
26 insertions(+),
19 deletions(-)
M
benches/compressed-snark.rs
→
benches/compressed-snark.rs
@@ -30,10 +30,13 @@ criterion_main!(compressed_snark);
fn bench_compressed_snark(c: &mut Criterion) { let num_samples = 10; - + let num_cons_verifier_circuit_primary = 20584; // we vary the number of constraints in the step circuit - for &log_num_cons_in_step_circuit in [0, 14, 15, 16, 17, 18, 19, 20].iter() { - let num_cons = 1 << log_num_cons_in_step_circuit; + for &num_cons_in_augmented_circuit in + [20584, 32768, 65536, 131072, 262144, 524288, 1048576].iter() + { + // number of constraints in the step circuit + let num_cons = num_cons_in_augmented_circuit - num_cons_verifier_circuit_primary; let mut group = c.benchmark_group(format!("CompressedSNARK-StepCircuitSize-{}", num_cons)); group.sample_size(num_samples);@@ -54,8 +57,8 @@ &pp,
recursive_snark, NonTrivialTestCircuit::new(num_cons), TrivialTestCircuit::default(), - <G1 as Group>::Scalar::one(), - <G2 as Group>::Scalar::one(), + <G1 as Group>::Scalar::from(2u64), + <G2 as Group>::Scalar::from(2u64), ); assert!(res.is_ok()); let recursive_snark_unwrapped = res.unwrap();@@ -64,8 +67,8 @@ // verify the recursive snark at each step of recursion
let res = recursive_snark_unwrapped.verify( &pp, i + 1, - <G1 as Group>::Scalar::one(), - <G2 as Group>::Scalar::one(), + <G1 as Group>::Scalar::from(2u64), + <G2 as Group>::Scalar::from(2u64), ); assert!(res.is_ok());@@ -95,8 +98,8 @@ assert!(black_box(&compressed_snark)
.verify( black_box(&pp), black_box(num_steps), - black_box(<G1 as Group>::Scalar::one()), - black_box(<G2 as Group>::Scalar::one()), + black_box(<G1 as Group>::Scalar::from(2u64)), + black_box(<G2 as Group>::Scalar::from(2u64)), ) .is_ok()); })
M
benches/recursive-snark.rs
→
benches/recursive-snark.rs
@@ -27,9 +27,13 @@
criterion_main!(recursive_snark); fn bench_recursive_snark(c: &mut Criterion) { + let num_cons_verifier_circuit_primary = 20584; // we vary the number of constraints in the step circuit - for &log_num_cons_in_step_circuit in [0, 14, 15, 16, 17, 18, 19, 20].iter() { - let num_cons = 1 << log_num_cons_in_step_circuit; + for &num_cons_in_augmented_circuit in + [20584, 32768, 65536, 131072, 262144, 524288, 1048576].iter() + { + // number of constraints in the step circuit + let num_cons = num_cons_in_augmented_circuit - num_cons_verifier_circuit_primary; let mut group = c.benchmark_group(format!("RecursiveSNARK-StepCircuitSize-{}", num_cons)); group.sample_size(10);@@ -53,8 +57,8 @@ &pp,
recursive_snark, NonTrivialTestCircuit::new(num_cons), TrivialTestCircuit::default(), - <G1 as Group>::Scalar::one(), - <G2 as Group>::Scalar::one(), + <G1 as Group>::Scalar::from(2u64), + <G2 as Group>::Scalar::from(2u64), ); assert!(res.is_ok()); let recursive_snark_unwrapped = res.unwrap();@@ -63,8 +67,8 @@ // verify the recursive snark at each step of recursion
let res = recursive_snark_unwrapped.verify( &pp, i + 1, - <G1 as Group>::Scalar::one(), - <G2 as Group>::Scalar::one(), + <G1 as Group>::Scalar::from(2u64), + <G2 as Group>::Scalar::from(2u64), ); assert!(res.is_ok());@@ -80,8 +84,8 @@ black_box(&pp),
black_box(recursive_snark.clone()), black_box(NonTrivialTestCircuit::new(num_cons)), black_box(TrivialTestCircuit::default()), - black_box(<G1 as Group>::Scalar::one()), - black_box(<G2 as Group>::Scalar::one()), + black_box(<G1 as Group>::Scalar::from(2u64)), + black_box(<G2 as Group>::Scalar::from(2u64)), ) .is_ok()); })@@ -96,8 +100,8 @@ assert!(black_box(&recursive_snark)
.verify( black_box(&pp), black_box(num_warmup_steps), - black_box(<G1 as Group>::Scalar::one()), - black_box(<G2 as Group>::Scalar::one()), + black_box(<G1 as Group>::Scalar::from(2u64)), + black_box(<G2 as Group>::Scalar::from(2u64)), ) .is_ok()); });