mirror of
https://github.com/arnaucube/phantom-zone.git
synced 2026-01-09 23:51:30 +01:00
remove 1 NTT from galois_auto AND add NTT benches
This commit is contained in:
36
benches/ntt.rs
Normal file
36
benches/ntt.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
use bin_rs::{Ntt, NttBackendU64, NttInit};
|
||||
use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion};
|
||||
use itertools::Itertools;
|
||||
use rand::{thread_rng, Rng};
|
||||
use rand_distr::Uniform;
|
||||
|
||||
fn benchmark(c: &mut Criterion) {
|
||||
let mut group = c.benchmark_group("ntt");
|
||||
// 55
|
||||
for prime in [36028797017456641] {
|
||||
for ring_size in [1 << 11, 1 << 15] {
|
||||
let ntt = NttBackendU64::new(&prime, ring_size);
|
||||
let mut rng = thread_rng();
|
||||
|
||||
let a = rng
|
||||
.sample_iter(Uniform::new(0, prime))
|
||||
.take(ring_size)
|
||||
.collect_vec();
|
||||
group.bench_function(
|
||||
BenchmarkId::new("forward", format!("q={prime}/{ring_size}")),
|
||||
|b| {
|
||||
b.iter_batched_ref(
|
||||
|| a.clone(),
|
||||
|mut a| black_box(ntt.forward(&mut a)),
|
||||
criterion::BatchSize::PerIteration,
|
||||
)
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
group.finish();
|
||||
}
|
||||
|
||||
criterion_group!(ntt, benchmark);
|
||||
criterion_main!(ntt);
|
||||
Reference in New Issue
Block a user