From cc6c365176ef204211aa9e07c05f07c6c1da4faf Mon Sep 17 00:00:00 2001 From: Daniel Lubarov Date: Sun, 8 Aug 2021 09:14:50 -0700 Subject: [PATCH] A couple field benchmarks (#161) --- Cargo.toml | 7 +++++++ benches/field_arithmetic.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 benches/field_arithmetic.rs diff --git a/Cargo.toml b/Cargo.toml index 8c4968ec..fa22a769 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,6 +24,13 @@ anyhow = "1.0.40" serde = { version = "1.0", features = ["derive"] } serde_cbor = "0.11.1" +[dev-dependencies] +criterion = "0.3.5" + +[[bench]] +name = "field_arithmetic" +harness = false + [profile.release] opt-level = 3 #lto = "fat" diff --git a/benches/field_arithmetic.rs b/benches/field_arithmetic.rs new file mode 100644 index 00000000..e5ec13ab --- /dev/null +++ b/benches/field_arithmetic.rs @@ -0,0 +1,28 @@ +use std::any::type_name; + +use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; +use plonky2::field::crandall_field::CrandallField; +use plonky2::field::extension_field::quartic::QuarticCrandallField; +use plonky2::field::field_types::Field; + +pub(crate) fn bench_field(c: &mut Criterion) { + c.bench_function(&format!("{} mul", type_name::()), |b| { + b.iter_batched( + || (F::rand(), F::rand()), + |(x, y)| x * y, + BatchSize::SmallInput, + ) + }); + + c.bench_function(&format!("{} try_inverse", type_name::()), |b| { + b.iter_batched(|| F::rand(), |x| x.try_inverse(), BatchSize::SmallInput) + }); +} + +fn criterion_benchmark(c: &mut Criterion) { + bench_field::(c); + bench_field::(c); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches);