arnaucube
arnaucube/ark-curves-cherry-pickedPublic Self-hosted repository
Add MSM benchmark (#24)

Pratyush Mishra pratyushmishra@berkeley.edu
Wed, 16 Dec 2020 11:39:29 -0800
commit

e7d7d01a027ce6445a8865a881f78ef6910815d8

parent

621355df14dd5b5189df12a8f158c2189320e681

2 files changed, 18 insertions(+), 0 deletions(-)

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