Add MSM benchmark (#24)
Pratyush Mishra pratyushmishra@berkeley.edu
Wed, 16 Dec 2020 11:39:29 -0800
2 files changed,
18 insertions(+),
0 deletions(-)
M
curve-benches/Cargo.toml
→
curve-benches/Cargo.toml
@@ -47,6 +47,7 @@ rand_xorshift = { version = "0.2" }
[features] asm = [ "ark-ff/asm"] +parallel = [ "ark-ff/parallel", "ark-ec/parallel", ] n_fold = [] [build-dependencies]
M
curve-benches/src/macros/ec.rs
→
curve-benches/src/macros/ec.rs
@@ -178,6 +178,22 @@ tmp.serialize_unchecked(&mut bytes)
}); } + fn msm_131072(b: &mut $crate::bencher::Bencher) { + use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; + const SAMPLES: usize = 131072; + + let mut rng = XorShiftRng::seed_from_u64(1231275789u64); + + let g = <$projective>::rand(&mut rng).into_affine(); + let v: Vec<_> = (0..SAMPLES).map(|_| g).collect(); + let scalars: Vec<_> = (0..SAMPLES) + .map(|_| Fr::rand(&mut rng).into_repr()) + .collect(); + b.bench_n(1, |b| { + b.iter(|| ark_ec::msm::VariableBaseMSM::multi_scalar_mul(&v, &scalars)); + }) + } + $crate::benchmark_group!( group_ops, rand,@@ -188,6 +204,7 @@ ser,
deser, ser_unchecked, deser_unchecked, + msm_131072, ); }; }