mirror of
https://github.com/arnaucube/ark-curves-cherry-picked.git
synced 2026-01-07 14:31:34 +01:00
Add MSM benchmark (#24)
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -178,6 +178,22 @@ macro_rules! ec_bench {
|
||||
});
|
||||
}
|
||||
|
||||
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 @@ macro_rules! ec_bench {
|
||||
deser,
|
||||
ser_unchecked,
|
||||
deser_unchecked,
|
||||
msm_131072,
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user