arithmetic::best_multiexp add benchmark

This commit is contained in:
ashWhiteHat 2023-09-06 10:46:30 +09:00
parent f9838c127e
commit af1713f1d3
2 changed files with 31 additions and 0 deletions

View File

@ -31,6 +31,10 @@ harness = false
name = "hashtocurve"
harness = false
[[bench]]
name = "msm"
harness = false
[[bench]]
name = "plonk"
harness = false

View File

@ -0,0 +1,27 @@
#[macro_use]
extern crate criterion;
use crate::arithmetic::best_multiexp;
use crate::pasta::{EqAffine, Fp};
use crate::poly::commitment::Params;
use criterion::{BenchmarkId, Criterion};
use group::ff::Field;
use halo2_proofs::*;
use rand_core::OsRng;
fn criterion_benchmark(c: &mut Criterion) {
let mut group = c.benchmark_group("msm");
for k in 8..16 {
group
.bench_function(BenchmarkId::new("k", k), |b| {
let coeffs = (0..(1 << k)).map(|_| Fp::random(OsRng)).collect::<Vec<_>>();
let bases = Params::<EqAffine>::new(k).get_g();
b.iter(|| best_multiexp(&coeffs, &bases))
})
.sample_size(30);
}
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);