mirror of
https://github.com/arnaucube/Nova.git
synced 2026-01-11 08:31:29 +01:00
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
This commit is contained in:
@@ -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 @@ fn bench_compressed_snark(c: &mut Criterion) {
|
||||
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 @@ fn bench_compressed_snark(c: &mut Criterion) {
|
||||
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 @@ fn bench_compressed_snark(c: &mut Criterion) {
|
||||
.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());
|
||||
})
|
||||
|
||||
@@ -27,9 +27,13 @@ targets = bench_recursive_snark
|
||||
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 @@ fn bench_recursive_snark(c: &mut Criterion) {
|
||||
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 @@ fn bench_recursive_snark(c: &mut Criterion) {
|
||||
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 @@ fn bench_recursive_snark(c: &mut Criterion) {
|
||||
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 @@ fn bench_recursive_snark(c: &mut Criterion) {
|
||||
.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());
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user