Added rs encoding and proofs generation benchmarks
This commit is contained in:
parent
dd0334264a
commit
a0c975f9aa
|
@ -1,4 +1,6 @@
|
||||||
|
use divan::counter::ItemsCount;
|
||||||
use divan::{black_box, counter::BytesCount, AllocProfiler, Bencher};
|
use divan::{black_box, counter::BytesCount, AllocProfiler, Bencher};
|
||||||
|
use kzgrs::{Evaluations, Polynomial};
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
|
|
||||||
use kzgrs_backend::encoder::{DaEncoder, DaEncoderParams};
|
use kzgrs_backend::encoder::{DaEncoder, DaEncoderParams};
|
||||||
|
@ -58,6 +60,49 @@ fn compute_1MB_data_matrix_kzg_row_commitments_with_column_count(
|
||||||
.bench_refs(|matrix| black_box(DaEncoder::compute_kzg_row_commitments(&matrix).is_ok()));
|
.bench_refs(|matrix| black_box(DaEncoder::compute_kzg_row_commitments(&matrix).is_ok()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
#[divan::bench(args = [100, 1000, 10000], sample_count = 1, sample_size = 1)]
|
||||||
|
fn compute_1MB_data_rs_encode_rows_with_column_count(bencher: Bencher, column_count: usize) {
|
||||||
|
let encoder_params: DaEncoderParams = DaEncoderParams::default_with(column_count);
|
||||||
|
let encoder: DaEncoder = DaEncoder::new(encoder_params);
|
||||||
|
let size = bencher
|
||||||
|
.with_inputs(|| {
|
||||||
|
let matrix = encoder.chunkify(rand_data(1).as_ref());
|
||||||
|
let (row_polynomials, _): (Vec<(Evaluations, Polynomial)>, Vec<_>) =
|
||||||
|
DaEncoder::compute_kzg_row_commitments(&matrix)
|
||||||
|
.unwrap()
|
||||||
|
.into_iter()
|
||||||
|
.unzip();
|
||||||
|
row_polynomials
|
||||||
|
})
|
||||||
|
.input_counter(|polynomials| ItemsCount::new(polynomials.len()))
|
||||||
|
.bench_refs(|polynomials| black_box(DaEncoder::rs_encode_rows(polynomials)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
#[divan::bench(args = [100, 1000, 10000], sample_count = 1, sample_size = 1)]
|
||||||
|
fn compute_1MB_data_compute_rows_proofs_with_column_count(bencher: Bencher, column_count: usize) {
|
||||||
|
let encoder_params: DaEncoderParams = DaEncoderParams::default_with(column_count);
|
||||||
|
let encoder: DaEncoder = DaEncoder::new(encoder_params);
|
||||||
|
let size = bencher
|
||||||
|
.with_inputs(|| {
|
||||||
|
let matrix = encoder.chunkify(rand_data(1).as_ref());
|
||||||
|
let (row_polynomials, _): (Vec<(Evaluations, Polynomial)>, Vec<_>) =
|
||||||
|
DaEncoder::compute_kzg_row_commitments(&matrix)
|
||||||
|
.unwrap()
|
||||||
|
.into_iter()
|
||||||
|
.unzip();
|
||||||
|
row_polynomials
|
||||||
|
.into_iter()
|
||||||
|
.map(|(_, poly)| poly)
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
})
|
||||||
|
.input_counter(|polynomials| ItemsCount::new(polynomials.len()))
|
||||||
|
.bench_refs(|polynomials| {
|
||||||
|
black_box(DaEncoder::compute_rows_proofs(polynomials, column_count).is_ok())
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
#[divan::bench(args = [100, 1000, 10000], sample_count = 1, sample_size = 1)]
|
#[divan::bench(args = [100, 1000, 10000], sample_count = 1, sample_size = 1)]
|
||||||
fn encode_1MB_with_column_count(bencher: Bencher, column_count: usize) {
|
fn encode_1MB_with_column_count(bencher: Bencher, column_count: usize) {
|
||||||
|
|
|
@ -89,13 +89,13 @@ impl DaEncoder {
|
||||||
encode(row, evaluations, 2, *DOMAIN)
|
encode(row, evaluations, 2, *DOMAIN)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rs_encode_rows(rows: &[(Evaluations, Polynomial)]) -> Vec<Evaluations> {
|
pub fn rs_encode_rows(rows: &[(Evaluations, Polynomial)]) -> Vec<Evaluations> {
|
||||||
rows.iter()
|
rows.iter()
|
||||||
.map(|(eval, poly)| Self::rs_encode_row(eval, poly))
|
.map(|(eval, poly)| Self::rs_encode_row(eval, poly))
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn compute_rows_proofs(
|
pub fn compute_rows_proofs(
|
||||||
polynomials: &[Polynomial],
|
polynomials: &[Polynomial],
|
||||||
proof_count: usize,
|
proof_count: usize,
|
||||||
) -> Result<Vec<Vec<Proof>>, KzgRsError> {
|
) -> Result<Vec<Vec<Proof>>, KzgRsError> {
|
||||||
|
|
Loading…
Reference in New Issue