mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-09 03:55:04 -05:00
feat(pareto): add benchmark for pareto computation
This commit is contained in:
@@ -6,7 +6,7 @@ edition = "2021"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
delegate = "0.6.2"
|
||||
delegate = "0.7.0"
|
||||
derive_more = "0.99.17"
|
||||
concrete-commons = { git = "ssh://git@github.com/zama-ai/concrete_internal.git", branch = "fix/optimizer_compat" }
|
||||
concrete-npe = { git = "ssh://git@github.com/zama-ai/concrete_internal.git", branch = "fix/optimizer_compat" }
|
||||
@@ -15,8 +15,13 @@ statrs = "0.15.0"
|
||||
[dev-dependencies]
|
||||
approx = "0.5"
|
||||
pretty_assertions = "1.2.1"
|
||||
criterion = "0.3"
|
||||
|
||||
[lib]
|
||||
crate-type= [
|
||||
"lib", # rust
|
||||
]
|
||||
|
||||
[[bench]]
|
||||
name = "benchmark"
|
||||
harness = false
|
||||
|
||||
32
concrete-optimizer/benches/benchmark.rs
Normal file
32
concrete-optimizer/benches/benchmark.rs
Normal file
@@ -0,0 +1,32 @@
|
||||
use concrete_optimizer::global_parameters::DEFAUT_DOMAINS;
|
||||
use concrete_optimizer::pareto::{extract_br_pareto, extract_ks_pareto};
|
||||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
|
||||
fn br_pareto_benchmark(c: &mut Criterion) {
|
||||
c.bench_function("BR pareto", |b| {
|
||||
b.iter(|| {
|
||||
black_box(extract_br_pareto(
|
||||
128,
|
||||
&DEFAUT_DOMAINS.glwe_pbs_constrained,
|
||||
&DEFAUT_DOMAINS.free_glwe.into(),
|
||||
64,
|
||||
))
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
fn ks_pareto_benchmark(c: &mut Criterion) {
|
||||
c.bench_function("KS pareto", |b| {
|
||||
b.iter(|| {
|
||||
black_box(extract_ks_pareto(
|
||||
128,
|
||||
&DEFAUT_DOMAINS.glwe_pbs_constrained,
|
||||
&DEFAUT_DOMAINS.free_glwe.into(),
|
||||
64,
|
||||
))
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, br_pareto_benchmark, ks_pareto_benchmark);
|
||||
criterion_main!(benches);
|
||||
@@ -186,11 +186,9 @@ mod tests {
|
||||
use super::*;
|
||||
use crate::global_parameters::DEFAUT_DOMAINS;
|
||||
use pretty_assertions::assert_eq;
|
||||
use std::time::Instant;
|
||||
|
||||
#[test]
|
||||
fn extract_br_pareto2() {
|
||||
let start = Instant::now();
|
||||
let pareto = extract_br_pareto(
|
||||
128,
|
||||
&DEFAUT_DOMAINS.glwe_pbs_constrained,
|
||||
@@ -203,20 +201,16 @@ mod tests {
|
||||
if br_bl != BR_BL {
|
||||
println!("---- Copy past to BR_BL");
|
||||
for (log2_base, level) in &br_bl {
|
||||
print!("({}, {}),", log2_base, level);
|
||||
print!("({log2_base}, {level}), ");
|
||||
}
|
||||
println!("\n---- End");
|
||||
assert_eq!(BR_BL, br_bl.as_slice());
|
||||
println!();
|
||||
println!("---- End");
|
||||
assert_eq!(br_bl, BR_BL);
|
||||
}
|
||||
|
||||
let duration = start.elapsed();
|
||||
|
||||
println!("Time elapsed in extract_br_pareto2() is: {:?}", duration);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extract_ks_pareto2() {
|
||||
let start = Instant::now();
|
||||
let pareto = extract_ks_pareto(
|
||||
128,
|
||||
&DEFAUT_DOMAINS.glwe_pbs_constrained,
|
||||
@@ -229,14 +223,11 @@ mod tests {
|
||||
if ks_bl != KS_BL {
|
||||
println!("---- Copy past to KS_BL");
|
||||
for (log2_base, level) in &ks_bl {
|
||||
print!("({}, {}),", log2_base, level);
|
||||
print!("({log2_base}, {level}), ");
|
||||
}
|
||||
println!("\n---- End");
|
||||
assert_eq!(KS_BL, ks_bl.as_slice());
|
||||
println!();
|
||||
println!("---- End");
|
||||
assert_eq!(ks_bl, KS_BL);
|
||||
}
|
||||
|
||||
let duration = start.elapsed();
|
||||
|
||||
println!("Time elapsed in extract_ks_pareto2() is: {:?}", duration);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user