Skip to content

Commit

Permalink
some benchmarks, truncated g1 points, and better errors.
Browse files Browse the repository at this point in the history
  • Loading branch information
asv committed May 24, 2024
1 parent 4a5a76e commit f4475f1
Show file tree
Hide file tree
Showing 6 changed files with 654 additions and 599 deletions.
5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ num_cpus = "1.16.0"

[dev-dependencies]
criterion = "0.5"
lazy_static = "1.4"

[[bench]]
name = "bench_g1_ifft"
Expand All @@ -38,6 +39,10 @@ harness = false
name = "bench_kzg_setup"
harness = false

[[bench]]
name = "bench_kzg_commit"
harness = false

[profile.bench]
opt-level = 3
debug = true
Expand Down
60 changes: 60 additions & 0 deletions benches/bench_kzg_commit.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
use std::time::Duration;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use rand::Rng;
use rust_kzg_bn254::{blob::Blob, kzg::Kzg};

fn bench_kzg_commit(c: &mut Criterion) {
let mut rng = rand::thread_rng();
let mut kzg = Kzg::setup(
"src/test-files/mainnet-data/g1.point",
"",
"src/test-files/mainnet-data/g2.point.powerOf2",
268435456,
131072
).unwrap();

c.bench_function("bench_kzg_commit_10000", |b| {
let random_blob: Vec<u8> = (0..10000).map(|_| rng.gen_range(32..=126) as u8).collect();
let input = Blob::from_bytes_and_pad(&random_blob);
let input_poly = input.to_polynomial().unwrap();
kzg.data_setup_custom(1, input.len().try_into().unwrap()).unwrap();
b.iter(|| {
kzg.commit(&input_poly).unwrap()
});
});

c.bench_function("bench_kzg_commit_30000", |b| {
let random_blob: Vec<u8> = (0..30000).map(|_| rng.gen_range(32..=126) as u8).collect();
let input = Blob::from_bytes_and_pad(&random_blob);
let input_poly = input.to_polynomial().unwrap();
kzg.data_setup_custom(1, input.len().try_into().unwrap()).unwrap();
b.iter(|| {
kzg.commit(&input_poly).unwrap()
});
});

c.bench_function("bench_kzg_commit_50000", |b| {
let random_blob: Vec<u8> = (0..50000).map(|_| rng.gen_range(32..=126) as u8).collect();
let input = Blob::from_bytes_and_pad(&random_blob);
let input_poly = input.to_polynomial().unwrap();
kzg.data_setup_custom(1, input.len().try_into().unwrap()).unwrap();
b.iter(|| {
kzg.commit(&input_poly).unwrap()
});
});
}

fn criterion_config() -> Criterion {
Criterion::default()
.warm_up_time(Duration::from_secs(5)) // Warm-up time
.measurement_time(Duration::from_secs(10)) // Measurement time
.sample_size(10) // Number of samples to take
}


criterion_group!(
name = benches;
config = criterion_config();
targets = bench_kzg_commit
);
criterion_main!(benches);
16 changes: 13 additions & 3 deletions benches/bench_kzg_setup.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use std::time::Duration;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use criterion::{criterion_group, criterion_main, Criterion};
use rust_kzg_bn254::kzg::Kzg;

fn bench_kzg_setup(c: &mut Criterion) {
Expand All @@ -9,8 +9,18 @@ fn bench_kzg_setup(c: &mut Criterion) {
"src/test-files/g1.point",
"src/test-files/g2.point",
"src/test-files/g2.point.powerOf2",
black_box(3000),
black_box(3000)
3000,
3000
).unwrap()
});

b.iter(|| {
Kzg::setup(
"src/test-files/mainnet-data/g1.point",
"",
"src/test-files/mainnet-data/g2.point.powerOf2",
268435456,
131072
).unwrap()
});
});
Expand Down
Loading

0 comments on commit f4475f1

Please sign in to comment.