From 841ec628cbeab7bdcde061ce807e0198bff717c4 Mon Sep 17 00:00:00 2001 From: Danny Willems Date: Mon, 5 May 2025 19:00:02 +0200 Subject: [PATCH] Saffron/benches: use get_srs_test from kimchi --- saffron/benches/read_proof_bench.rs | 30 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/saffron/benches/read_proof_bench.rs b/saffron/benches/read_proof_bench.rs index 950a4fb67e..24ecf5708e 100644 --- a/saffron/benches/read_proof_bench.rs +++ b/saffron/benches/read_proof_bench.rs @@ -3,26 +3,18 @@ use ark_ff::{One, UniformRand, Zero}; use ark_poly::{univariate::DensePolynomial, Evaluations}; use criterion::{black_box, criterion_group, criterion_main, BatchSize, Criterion}; -use kimchi::{circuits::domains::EvaluationDomains, groupmap::GroupMap}; +use kimchi::{ + circuits::domains::EvaluationDomains, groupmap::GroupMap, precomputed_srs::get_srs_test, +}; use mina_curves::pasta::{Fp, Vesta}; use once_cell::sync::Lazy; -use poly_commitment::{commitment::CommitmentCurve, ipa::SRS, SRS as _}; +use poly_commitment::{commitment::CommitmentCurve, SRS as _}; use rand::rngs::OsRng; use saffron::{ - env, read_proof::{prove, verify}, ScalarField, SRS_SIZE, }; -// Set up static resources to avoid re-computation during benchmarks -static SRS: Lazy> = Lazy::new(|| { - if let Ok(srs) = std::env::var("SRS_FILEPATH") { - env::get_srs_from_cache(srs) - } else { - SRS::create(SRS_SIZE) - } -}); - static DOMAIN: Lazy> = Lazy::new(|| EvaluationDomains::::create(SRS_SIZE).unwrap()); @@ -37,10 +29,12 @@ fn generate_test_data( // Generate data with specified size let data: Vec = (0..size).map(|_| Fp::rand(&mut rng)).collect(); + let srs = get_srs_test(); + // Create data commitment let data_poly: DensePolynomial = Evaluations::from_vec_and_domain(data.clone(), DOMAIN.d1).interpolate(); - let data_comm: Vesta = SRS.commit_non_hiding(&data_poly, 1).chunks[0]; + let data_comm: Vesta = srs.commit_non_hiding(&data_poly, 1).chunks[0]; // Generate query (about 10% of positions will be queried) let query: Vec = (0..size) @@ -62,6 +56,8 @@ fn generate_test_data( fn bench_read_proof_prove(c: &mut Criterion) { let (data, query, answer, data_comm) = generate_test_data(SRS_SIZE); + let srs = get_srs_test(); + let description = format!("prove size {}", SRS_SIZE); c.bench_function(description.as_str(), |b| { b.iter_batched( @@ -69,7 +65,7 @@ fn bench_read_proof_prove(c: &mut Criterion) { |mut rng| { black_box(prove( *DOMAIN, - &SRS, + &srs, &GROUP_MAP, &mut rng, data.as_slice(), @@ -86,11 +82,13 @@ fn bench_read_proof_prove(c: &mut Criterion) { fn bench_read_proof_verify(c: &mut Criterion) { let (data, query, answer, data_comm) = generate_test_data(SRS_SIZE); + let srs = get_srs_test(); + // Create proof first let mut rng = OsRng; let proof = prove( *DOMAIN, - &SRS, + &srs, &GROUP_MAP, &mut rng, data.as_slice(), @@ -105,7 +103,7 @@ fn bench_read_proof_verify(c: &mut Criterion) { || OsRng, |mut rng| { black_box(verify( - *DOMAIN, &SRS, &GROUP_MAP, &mut rng, &data_comm, &proof, + *DOMAIN, &srs, &GROUP_MAP, &mut rng, &data_comm, &proof, )) }, BatchSize::SmallInput,