mirror of https://github.com/zcash/halo2.git
arithmetic::best_multiexp add benchmark
This commit is contained in:
parent
f9838c127e
commit
af1713f1d3
|
@ -31,6 +31,10 @@ harness = false
|
||||||
name = "hashtocurve"
|
name = "hashtocurve"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "msm"
|
||||||
|
harness = false
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "plonk"
|
name = "plonk"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
|
@ -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);
|
Loading…
Reference in New Issue