Skip to content

Commit 445bce8

Browse files
committed
add benches for bls12_381
1 parent ed1f377 commit 445bce8

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

benches/msm.rs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,46 @@ fn bench_msm_p256(c: &mut Criterion) {
6363
group.finish();
6464
}
6565

66+
fn bench_msm_bls12_381_g1(c: &mut Criterion) {
67+
use bls12_381::{G1Projective, Scalar};
68+
69+
let mut group = c.benchmark_group("MSM bls12_381 G1Projective");
70+
let mut rng = thread_rng();
71+
72+
for size in [1, 2, 4, 8, 16, 64, 256, 1024].iter() {
73+
let scalars: Vec<Scalar> = (0..*size).map(|_| Scalar::random(&mut rng)).collect();
74+
let bases: Vec<G1Projective> = (0..*size).map(|_| G1Projective::random(&mut rng)).collect();
75+
76+
group.bench_with_input(BenchmarkId::new("size", size), size, |b, _| {
77+
b.iter(|| G1Projective::msm(black_box(&scalars), black_box(&bases)))
78+
});
79+
}
80+
group.finish();
81+
}
82+
83+
fn bench_msm_bls12_381_g2(c: &mut Criterion) {
84+
use bls12_381::{G2Projective, Scalar};
85+
86+
let mut group = c.benchmark_group("MSM bls12_381 G2Projective");
87+
let mut rng = thread_rng();
88+
89+
for size in [1, 2, 4, 8, 16, 64, 256, 1024].iter() {
90+
let scalars: Vec<Scalar> = (0..*size).map(|_| Scalar::random(&mut rng)).collect();
91+
let bases: Vec<G2Projective> = (0..*size).map(|_| G2Projective::random(&mut rng)).collect();
92+
93+
group.bench_with_input(BenchmarkId::new("size", size), size, |b, _| {
94+
b.iter(|| G2Projective::msm(black_box(&scalars), black_box(&bases)))
95+
});
96+
}
97+
group.finish();
98+
}
99+
66100
criterion_group!(
67101
benches,
68102
bench_msm_curve25519_dalek,
69103
bench_msm_k256,
70-
bench_msm_p256
104+
bench_msm_p256,
105+
bench_msm_bls12_381_g1,
106+
bench_msm_bls12_381_g2,
71107
);
72108
criterion_main!(benches);

0 commit comments

Comments
 (0)