mirror of
https://github.com/arnaucube/ark-curves-cherry-picked.git
synced 2026-01-08 15:01:29 +01:00
Add MSM benchmark (#24)
This commit is contained in:
@@ -47,6 +47,7 @@ rand_xorshift = { version = "0.2" }
|
|||||||
|
|
||||||
[features]
|
[features]
|
||||||
asm = [ "ark-ff/asm"]
|
asm = [ "ark-ff/asm"]
|
||||||
|
parallel = [ "ark-ff/parallel", "ark-ec/parallel", ]
|
||||||
n_fold = []
|
n_fold = []
|
||||||
|
|
||||||
[build-dependencies]
|
[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!(
|
$crate::benchmark_group!(
|
||||||
group_ops,
|
group_ops,
|
||||||
rand,
|
rand,
|
||||||
@@ -188,6 +204,7 @@ macro_rules! ec_bench {
|
|||||||
deser,
|
deser,
|
||||||
ser_unchecked,
|
ser_unchecked,
|
||||||
deser_unchecked,
|
deser_unchecked,
|
||||||
|
msm_131072,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user