Skip to content

Commit 3aeea53

Browse files
committed
make bench generic; fix pp_digest tests
1 parent fa9ada8 commit 3aeea53

File tree

2 files changed

+21
-22
lines changed

2 files changed

+21
-22
lines changed

src/neutron/nifs.rs

+18-19
Original file line numberDiff line numberDiff line change
@@ -620,17 +620,15 @@ mod benchmarks {
620620
}
621621
}
622622

623-
fn generarate_sha_r1cs(
623+
fn generarate_sha_r1cs<E: Engine>(
624624
len: usize,
625625
) -> (
626-
R1CSShape<Bn256EngineKZG>,
627-
CommitmentKey<Bn256EngineKZG>,
628-
R1CSWitness<Bn256EngineKZG>,
626+
R1CSShape<E>,
627+
CommitmentKey<E>,
628+
R1CSWitness<E>,
629629
Vec<u8>,
630-
Vec<<Bn256EngineKZG as Engine>::Scalar>,
630+
Vec<E::Scalar>,
631631
) {
632-
type E = Bn256EngineKZG;
633-
634632
let circuit = Sha256Circuit::<E> {
635633
preimage: vec![0u8; len],
636634
_p: Default::default(),
@@ -652,7 +650,8 @@ mod benchmarks {
652650
.iter()
653651
.map(|e| {
654652
// map field element to u8
655-
e.to_repr()[0] as u8
653+
// this assumes little-endian representation
654+
e.to_repr().as_ref()[0] as u8
656655
})
657656
.collect::<Vec<_>>();
658657

@@ -664,17 +663,15 @@ mod benchmarks {
664663
(S, ck, W, w, X)
665664
}
666665

667-
fn bench_nifs_inner<T: Integer + Into<u64> + Copy + Sync + ToPrimitive>(
666+
fn bench_nifs_inner<E: Engine, T: Integer + Into<u64> + Copy + Sync + ToPrimitive>(
668667
c: &mut Criterion,
669668
name: &str,
670-
S: &R1CSShape<Bn256EngineKZG>,
671-
ck: &CommitmentKey<Bn256EngineKZG>,
672-
W: &R1CSWitness<Bn256EngineKZG>,
669+
S: &R1CSShape<E>,
670+
ck: &CommitmentKey<E>,
671+
W: &R1CSWitness<E>,
673672
w: &[T],
674-
x: &[<Bn256EngineKZG as Engine>::Scalar],
673+
x: &[E::Scalar],
675674
) {
676-
type E = Bn256EngineKZG;
677-
678675
let num_cons = S.num_cons;
679676

680677
// generate a default running instance
@@ -685,14 +682,14 @@ mod benchmarks {
685682
assert!(res.is_ok());
686683

687684
// generate default values
688-
let pp_digest = <E as Engine>::Scalar::ZERO;
685+
let pp_digest = E::Scalar::ZERO;
689686
let ro_consts = RO2Constants::<E>::default();
690687

691688
// produce an NIFS with (W, U) as the first incoming witness-instance pair
692689
c.bench_function(&format!("neutron_nifs_{name}_{num_cons}"), |b| {
693690
b.iter(|| {
694691
// commit with the specialized method
695-
let comm_W = <E as Engine>::CE::commit_small(ck, &w, &W.r_W);
692+
let comm_W = E::CE::commit_small(ck, &w, &W.r_W);
696693

697694
// make an R1CS instance
698695
let U = R1CSInstance::new(&S, &comm_W, &x).unwrap();
@@ -723,19 +720,21 @@ mod benchmarks {
723720

724721
#[test]
725722
fn bench_nifs_simple() {
726-
let mut criterion = Criterion::default();
727723
type E = Bn256EngineKZG;
728724

725+
let mut criterion = Criterion::default();
729726
let num_cons = 1024 * 1024;
730727
let (S, ck, W, w, x) = generate_sample_r1cs::<E>(num_cons); // W is R1CSWitness, w is a vector of u8, x is a vector of field elements
731728
bench_nifs_inner(&mut criterion, &"simple", &S, &ck, &W, &w, &x);
732729
}
733730

734731
#[test]
735732
fn bench_nifs_sha256() {
733+
type E = Bn256EngineKZG;
734+
736735
let mut criterion = Criterion::default();
737736
for len in [1024, 2048].iter() {
738-
let (S, ck, W, w, x) = generarate_sha_r1cs(*len);
737+
let (S, ck, W, w, x) = generarate_sha_r1cs::<E>(*len);
739738
bench_nifs_inner(&mut criterion, &"sha256", &S, &ck, &W, &w, &x);
740739
}
741740
}

src/nova/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1011,17 +1011,17 @@ mod tests {
10111011
fn test_pp_digest() {
10121012
test_pp_digest_with::<PallasEngine, VestaEngine, _>(
10131013
&TrivialCircuit::<_>::default(),
1014-
&expect!["b72563ab98212b4e71d92a2c7b0e01f5b6d62f242a2963bc99e65a9aea525b00"],
1014+
&expect!["fbd08d8d030105a2fedd6c16f5964081aac34c3ee3c6080797561af57b818802"],
10151015
);
10161016

10171017
test_pp_digest_with::<Bn256EngineIPA, GrumpkinEngine, _>(
10181018
&TrivialCircuit::<_>::default(),
1019-
&expect!["03cd45b654184152d573cd23c97608d69aff0225a18d78f66beb9f375d24a402"],
1019+
&expect!["99dc4a55d3e2fec50e4da7a74c9f8fa3ae61d9871d03dc7f703dd347c78f4800"],
10201020
);
10211021

10221022
test_pp_digest_with::<Secp256k1Engine, Secq256k1Engine, _>(
10231023
&TrivialCircuit::<_>::default(),
1024-
&expect!["46eac7eadf04d2cd8ced64b2ef7c3d228192e9eb98bc22ff0a05a2d166739d02"],
1024+
&expect!["d9fac48ccd1f55973e3fe861d35b68d56cfe1ced124555c4c27714dc1d0b2b03"],
10251025
);
10261026
}
10271027

0 commit comments

Comments
 (0)