arnaucube
arnaucube/NovaPublic Self-hosted repository
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
commit

c6fa4d44eb07a9cc6d990cc8c8f052aab1661f13

parent

5d5b9aa24484ab765322d2822daa3362a544d97c

2 files changed, 26 insertions(+), 19 deletions(-)

jump to
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()); });