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 kzgrs::{Evaluations, Polynomial};
|
||||
use rand::RngCore;
|
||||
|
||||
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()));
|
||||
}
|
||||
|
||||
#[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)]
|
||||
#[divan::bench(args = [100, 1000, 10000], sample_count = 1, sample_size = 1)]
|
||||
fn encode_1MB_with_column_count(bencher: Bencher, column_count: usize) {
|
||||
|
|
|
@ -89,13 +89,13 @@ impl DaEncoder {
|
|||
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()
|
||||
.map(|(eval, poly)| Self::rs_encode_row(eval, poly))
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn compute_rows_proofs(
|
||||
pub fn compute_rows_proofs(
|
||||
polynomials: &[Polynomial],
|
||||
proof_count: usize,
|
||||
) -> Result<Vec<Vec<Proof>>, KzgRsError> {
|
||||
|
|
Loading…
Reference in New Issue