Skip to content
Snippets Groups Projects
Verified Commit 3d3167fb authored by STEVAN Antoine's avatar STEVAN Antoine :crab:
Browse files

run benchmarks on BLS12-381, BN-254 and PALLAS

parent 3d5e7c58
No related branches found
No related tags found
No related merge requests found
use std::time::Duration; use std::time::Duration;
use ark_bls12_381::{Bls12_381, Fr, G1Projective};
use ark_ec::{pairing::Pairing, CurveGroup}; use ark_ec::{pairing::Pairing, CurveGroup};
use ark_ff::PrimeField; use ark_ff::PrimeField;
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial}; use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
use ark_std::ops::Div;
use ark_poly_commit::kzg10::{Powers, KZG10}; use ark_poly_commit::kzg10::{Powers, KZG10};
use ark_std::ops::Div;
use criterion::{black_box, criterion_group, criterion_main, Criterion}; use criterion::{black_box, criterion_group, criterion_main, Criterion};
...@@ -62,17 +60,25 @@ where ...@@ -62,17 +60,25 @@ where
} }
fn commit(c: &mut Criterion) { fn commit(c: &mut Criterion) {
fn aux<F: PrimeField, G: CurveGroup<ScalarField = F>>(c: &mut Criterion, degree: usize) {
commit_template::<F, G, DensePolynomial<F>>(c, black_box(degree));
}
for n in [1, 2, 4, 8, 16] { for n in [1, 2, 4, 8, 16] {
commit_template::<Fr, G1Projective, DensePolynomial<Fr>>(c, black_box(n)); aux::<ark_bls12_381::Fr, ark_bls12_381::G1Projective>(c, n);
aux::<ark_bn254::Fr, ark_bn254::G1Projective>(c, n);
aux::<ark_pallas::Fr, ark_pallas::Projective>(c, n);
} }
} }
fn ark_commit(c: &mut Criterion) { fn ark_commit(c: &mut Criterion) {
fn aux<E: Pairing>(c: &mut Criterion, degree: usize) {
ark_commit_template::<E, DensePolynomial<E::ScalarField>>(c, black_box(degree));
}
for n in [1, 2, 4, 8, 16] { for n in [1, 2, 4, 8, 16] {
ark_commit_template::<Bls12_381, DensePolynomial<<Bls12_381 as Pairing>::ScalarField>>( aux::<ark_bls12_381::Bls12_381>(c, n);
c, aux::<ark_bn254::Bn254>(c, n);
black_box(n),
);
} }
} }
......
use std::time::Duration; use std::time::Duration;
use ark_bls12_381::Fr;
use ark_ff::PrimeField; use ark_ff::PrimeField;
use criterion::{black_box, criterion_group, criterion_main, Criterion}; use criterion::{black_box, criterion_group, criterion_main, Criterion};
...@@ -19,7 +18,9 @@ fn inverse_template<F: PrimeField>(c: &mut Criterion, n: usize) { ...@@ -19,7 +18,9 @@ fn inverse_template<F: PrimeField>(c: &mut Criterion, n: usize) {
fn inverse(c: &mut Criterion) { fn inverse(c: &mut Criterion) {
for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] { for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] {
inverse_template::<Fr>(c, black_box(n)); inverse_template::<ark_bls12_381::Fr>(c, black_box(n));
inverse_template::<ark_bn254::Fr>(c, black_box(n));
inverse_template::<ark_pallas::Fr>(c, black_box(n));
} }
} }
...@@ -35,7 +36,9 @@ fn transpose_template<F: PrimeField>(c: &mut Criterion, n: usize) { ...@@ -35,7 +36,9 @@ fn transpose_template<F: PrimeField>(c: &mut Criterion, n: usize) {
fn transpose(c: &mut Criterion) { fn transpose(c: &mut Criterion) {
for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] { for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] {
transpose_template::<Fr>(c, black_box(n)); transpose_template::<ark_bls12_381::Fr>(c, black_box(n));
transpose_template::<ark_bn254::Fr>(c, black_box(n));
transpose_template::<ark_pallas::Fr>(c, black_box(n));
} }
} }
...@@ -51,8 +54,10 @@ fn mul_template<F: PrimeField>(c: &mut Criterion, n: usize) { ...@@ -51,8 +54,10 @@ fn mul_template<F: PrimeField>(c: &mut Criterion, n: usize) {
} }
fn mul(c: &mut Criterion) { fn mul(c: &mut Criterion) {
for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] { for n in [10, 15, 20, 30, 40, 60, 80, 120] {
mul_template::<Fr>(c, black_box(n)); mul_template::<ark_bls12_381::Fr>(c, black_box(n));
mul_template::<ark_bn254::Fr>(c, black_box(n));
mul_template::<ark_pallas::Fr>(c, black_box(n));
} }
} }
......
use std::time::Duration; use std::time::Duration;
use ark_bls12_381::Fr;
use ark_ff::PrimeField; use ark_ff::PrimeField;
use ark_std::rand::Rng; use ark_std::rand::Rng;
...@@ -56,7 +55,9 @@ fn criterion_benchmark(c: &mut Criterion) { ...@@ -56,7 +55,9 @@ fn criterion_benchmark(c: &mut Criterion) {
for nb_bytes in [1, 1_024, 1_024 * 1_024] { for nb_bytes in [1, 1_024, 1_024 * 1_024] {
for nb_shards in [2, 4, 8, 16] { for nb_shards in [2, 4, 8, 16] {
for k in [2, 4, 8, 16] { for k in [2, 4, 8, 16] {
bench_template::<Fr>(c, nb_bytes, k, nb_shards); bench_template::<ark_bls12_381::Fr>(c, nb_bytes, k, nb_shards);
bench_template::<ark_bn254::Fr>(c, nb_bytes, k, nb_shards);
bench_template::<ark_pallas::Fr>(c, nb_bytes, k, nb_shards);
} }
} }
} }
......
use std::time::Duration; use std::time::Duration;
use ark_bls12_381::Bls12_381;
use ark_ec::{pairing::Pairing, CurveGroup}; use ark_ec::{pairing::Pairing, CurveGroup};
use ark_ff::PrimeField; use ark_ff::PrimeField;
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial}; use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
...@@ -146,17 +145,25 @@ where ...@@ -146,17 +145,25 @@ where
} }
fn setup(c: &mut Criterion) { fn setup(c: &mut Criterion) {
fn aux<F: PrimeField, G: CurveGroup<ScalarField = F>>(c: &mut Criterion, degree: usize) {
setup_template::<F, G, DensePolynomial<F>>(c, black_box(degree));
}
for n in [1, 2, 4, 8, 16] { for n in [1, 2, 4, 8, 16] {
setup_template::<Fr, G1Projective, DensePolynomial<Fr>>(c, black_box(n)); aux::<ark_bls12_381::Fr, ark_bls12_381::G1Projective>(c, n);
aux::<ark_bn254::Fr, ark_bn254::G1Projective>(c, n);
aux::<ark_pallas::Fr, ark_pallas::Projective>(c, n);
} }
} }
fn ark_setup(c: &mut Criterion) { fn ark_setup(c: &mut Criterion) {
fn aux<E: Pairing>(c: &mut Criterion, degree: usize) {
ark_setup_template::<E, DensePolynomial<E::ScalarField>>(c, black_box(degree));
}
for n in [1, 2, 4, 8, 16] { for n in [1, 2, 4, 8, 16] {
ark_setup_template::<Bls12_381, DensePolynomial<<Bls12_381 as Pairing>::ScalarField>>( aux::<ark_bls12_381::Bls12_381>(c, n);
c, aux::<ark_bn254::Bn254>(c, n);
black_box(n),
);
} }
} }
......
use ark_bls12_381::{Fr, G1Projective};
use ark_ec::CurveGroup; use ark_ec::CurveGroup;
use ark_ff::PrimeField; use ark_ff::PrimeField;
use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial}; use ark_poly::{univariate::DensePolynomial, DenseUVPolynomial};
...@@ -35,7 +34,13 @@ where ...@@ -35,7 +34,13 @@ where
} }
fn main() { fn main() {
fn aux<F: PrimeField, G: CurveGroup<ScalarField = F>>(degree: usize) {
setup_template::<F, G, DensePolynomial<F>>(degree);
}
for n in [1, 2, 4, 8, 16] { for n in [1, 2, 4, 8, 16] {
setup_template::<Fr, G1Projective, DensePolynomial<Fr>>(n); aux::<ark_bls12_381::Fr, ark_bls12_381::G1Projective>(n);
aux::<ark_bn254::Fr, ark_bn254::G1Projective>(n);
aux::<ark_pallas::Fr, ark_pallas::Projective>(n);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment