chore(bench): insert params name in bench id for hlapi

To ease parsing and filtering by third parties.
This commit is contained in:
David Testé
2025-10-31 19:14:28 +01:00
committed by David Testé
parent de98c41e2f
commit 0c977a3996
4 changed files with 104 additions and 73 deletions

View File

@@ -64,7 +64,7 @@ def generate_json_regression_file(
print(error_msg.format("HEAD", user_config.head_branch, layer, ops)) print(error_msg.format("HEAD", user_config.head_branch, layer, ops))
raise raise
if params_filter and layer != Layer.HLApi: if params_filter:
head_branch_data = dict( head_branch_data = dict(
filter( filter(
lambda item: params_filter in item[0].params, lambda item: params_filter in item[0].params,

View File

@@ -252,12 +252,13 @@ mod pbs_stats {
println!("ERC20 swap request update dex balance/::{type_name}: {count} PBS"); println!("ERC20 swap request update dex balance/::{type_name}: {count} PBS");
let params = client_key.computation_parameters(); let params = client_key.computation_parameters();
let params_name = params.name();
let test_name = if cfg!(feature = "gpu") { let test_name = if cfg!(feature = "gpu") {
format!("hlapi::cuda::dex::pbs_count::swap_request_update_dex_balance::{fn_name}::{type_name}") format!("hlapi::cuda::dex::pbs_count::swap_request_update_dex_balance::{fn_name}::{params_name}::{type_name}")
} else { } else {
format!( format!(
"hlapi::dex::pbs_count::swap_request_update_dex_balance::{fn_name}::{type_name}" "hlapi::dex::pbs_count::swap_request_update_dex_balance::{fn_name}::{params_name}::{type_name}"
) )
}; };
@@ -275,7 +276,7 @@ mod pbs_stats {
write_to_json::<u64, _>( write_to_json::<u64, _>(
&test_name, &test_name,
params, params,
params.name(), params_name,
"pbs-count", "pbs-count",
&OperatorType::Atomic, &OperatorType::Atomic,
0, 0,
@@ -306,11 +307,14 @@ mod pbs_stats {
println!("ERC20 swap request finalize/::{type_name}: {count} PBS"); println!("ERC20 swap request finalize/::{type_name}: {count} PBS");
let params = client_key.computation_parameters(); let params = client_key.computation_parameters();
let params_name = params.name();
let test_name = if cfg!(feature = "gpu") { let test_name = if cfg!(feature = "gpu") {
format!("hlapi::cuda::dex::pbs_count::swap_request_finalize::{type_name}") format!(
"hlapi::cuda::dex::pbs_count::swap_request_finalize::{params_name}::{type_name}"
)
} else { } else {
format!("hlapi::dex::pbs_count::swap_request_finalize::{type_name}") format!("hlapi::dex::pbs_count::swap_request_finalize::{params_name}::{type_name}")
}; };
let results_file = Path::new("dex_swap_request_finalize_pbs_count.csv"); let results_file = Path::new("dex_swap_request_finalize_pbs_count.csv");
@@ -327,7 +331,7 @@ mod pbs_stats {
write_to_json::<u64, _>( write_to_json::<u64, _>(
&test_name, &test_name,
params, params,
params.name(), params_name,
"pbs-count", "pbs-count",
&OperatorType::Atomic, &OperatorType::Atomic,
0, 0,
@@ -368,11 +372,12 @@ mod pbs_stats {
println!("ERC20 swap claim prepare/::{type_name}: {count} PBS"); println!("ERC20 swap claim prepare/::{type_name}: {count} PBS");
let params = client_key.computation_parameters(); let params = client_key.computation_parameters();
let params_name = params.name();
let test_name = if cfg!(feature = "gpu") { let test_name = if cfg!(feature = "gpu") {
format!("hlapi::cuda::pbs_count::dex::swap_claim_prepare::{type_name}") format!("hlapi::cuda::pbs_count::dex::swap_claim_prepare::{params_name}::{type_name}")
} else { } else {
format!("hlapi::dex::pbs_count::swap_claim_prepare::{type_name}") format!("hlapi::dex::pbs_count::swap_claim_prepare::{params_name}::{type_name}")
}; };
let results_file = Path::new("dex_swap_claim_prepare_pbs_count.csv"); let results_file = Path::new("dex_swap_claim_prepare_pbs_count.csv");
@@ -389,7 +394,7 @@ mod pbs_stats {
write_to_json::<u64, _>( write_to_json::<u64, _>(
&test_name, &test_name,
params, params,
params.name(), params_name,
"pbs-count", "pbs-count",
&OperatorType::Atomic, &OperatorType::Atomic,
0, 0,
@@ -427,11 +432,12 @@ mod pbs_stats {
println!("ERC20 swap claim update dex balance/::{type_name}: {count} PBS"); println!("ERC20 swap claim update dex balance/::{type_name}: {count} PBS");
let params = client_key.computation_parameters(); let params = client_key.computation_parameters();
let params_name = params.name();
let test_name = if cfg!(feature = "gpu") { let test_name = if cfg!(feature = "gpu") {
format!("hlapi::cuda::pbs_count::dex::swap_claim_update_dex_balance::{fn_name}::{type_name}") format!("hlapi::cuda::pbs_count::dex::swap_claim_update_dex_balance::{fn_name}::{params_name}::{type_name}")
} else { } else {
format!("hlapi::dex::pbs_count::swap_claim_update_dex_balance:::{fn_name}:{type_name}") format!("hlapi::dex::pbs_count::swap_claim_update_dex_balance::{fn_name}::{params_name}::{type_name}")
}; };
let results_file = Path::new("dex_swap_claim_update_dex_balance_pbs_count.csv"); let results_file = Path::new("dex_swap_claim_update_dex_balance_pbs_count.csv");
@@ -448,7 +454,7 @@ mod pbs_stats {
write_to_json::<u64, _>( write_to_json::<u64, _>(
&test_name, &test_name,
params, params,
params.name(), params_name,
"pbs-count", "pbs-count",
&OperatorType::Atomic, &OperatorType::Atomic,
0, 0,
@@ -473,6 +479,9 @@ fn bench_swap_request_latency<FheType, F1, F2>(
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
configure_gpu(client_key); configure_gpu(client_key);
let params = client_key.computation_parameters();
let params_name = params.name();
let bench_id = format!("{bench_name}::{fn_name}::{type_name}"); let bench_id = format!("{bench_name}::{fn_name}::{type_name}");
c.bench_function(&bench_id, |b| { c.bench_function(&bench_id, |b| {
let mut rng = thread_rng(); let mut rng = thread_rng();
@@ -512,12 +521,10 @@ fn bench_swap_request_latency<FheType, F1, F2>(
}) })
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), params_name,
"dex-swap-request", "dex-swap-request",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -541,10 +548,14 @@ fn bench_swap_request_throughput<FheType, F1, F2>(
{ {
let mut rng = thread_rng(); let mut rng = thread_rng();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [10, 50, 100] { for num_elems in [10, 50, 100] {
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = let bench_id = format!(
format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); "{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let from_balances_0 = (0..num_elems) let from_balances_0 = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -626,12 +637,10 @@ fn bench_swap_request_throughput<FheType, F1, F2>(
}) })
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"dex-swap-request", "dex-swap-request",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -662,10 +671,14 @@ fn cuda_bench_swap_request_throughput<FheType, F1, F2>(
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let dex_balance_update_sks = compressed_server_key.decompress_to_gpu(); let dex_balance_update_sks = compressed_server_key.decompress_to_gpu();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [5 * num_gpus, 10 * num_gpus, 20 * num_gpus] { for num_elems in [5 * num_gpus, 10 * num_gpus, 20 * num_gpus] {
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = let bench_id = format!(
format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); "{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let from_balances_0 = (0..num_elems) let from_balances_0 = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -836,12 +849,10 @@ fn cuda_bench_swap_request_throughput<FheType, F1, F2>(
}) })
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"dex-swap-request", "dex-swap-request",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -866,7 +877,10 @@ fn bench_swap_claim_latency<FheType, F1, F2>(
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
configure_gpu(client_key); configure_gpu(client_key);
let bench_id = format!("{bench_name}::{fn_name}::{type_name}"); let params = client_key.computation_parameters();
let params_name = params.name();
let bench_id = format!("{bench_name}::{fn_name}::{params_name}::{type_name}");
c.bench_function(&bench_id, |b| { c.bench_function(&bench_id, |b| {
let mut rng = thread_rng(); let mut rng = thread_rng();
@@ -911,12 +925,10 @@ fn bench_swap_claim_latency<FheType, F1, F2>(
}); });
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"dex-swap-claim", "dex-swap-claim",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -940,10 +952,14 @@ fn bench_swap_claim_throughput<FheType, F1, F2>(
{ {
let mut rng = thread_rng(); let mut rng = thread_rng();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [2, 6, 10] { for num_elems in [2, 6, 10] {
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = let bench_id = format!(
format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); "{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let pending_0_in = (0..num_elems) let pending_0_in = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -1043,12 +1059,10 @@ fn bench_swap_claim_throughput<FheType, F1, F2>(
}); });
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"dex-swap-claim", "dex-swap-claim",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -1079,10 +1093,14 @@ fn cuda_bench_swap_claim_throughput<FheType, F1, F2>(
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let dex_balance_update_sks = compressed_server_key.decompress_to_gpu(); let dex_balance_update_sks = compressed_server_key.decompress_to_gpu();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [num_gpus, 2 * num_gpus] { for num_elems in [num_gpus, 2 * num_gpus] {
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = let bench_id = format!(
format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); "{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let pending_0_in = (0..num_elems) let pending_0_in = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -1248,12 +1266,10 @@ fn cuda_bench_swap_claim_throughput<FheType, F1, F2>(
}); });
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"dex-swap-claim", "dex-swap-claim",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,

View File

@@ -306,11 +306,12 @@ mod pbs_stats {
println!("ERC20 transfer/{fn_name}::{type_name}: {count} PBS"); println!("ERC20 transfer/{fn_name}::{type_name}: {count} PBS");
let params = client_key.computation_parameters(); let params = client_key.computation_parameters();
let params_name = params.name();
let test_name = if cfg!(feature = "gpu") { let test_name = if cfg!(feature = "gpu") {
format!("hlapi::cuda::erc20::pbs_count::{fn_name}::{type_name}") format!("hlapi::cuda::erc20::pbs_count::{fn_name}::{params_name}::{type_name}")
} else { } else {
format!("hlapi::erc20::pbs_count::{fn_name}::{type_name}") format!("hlapi::erc20::pbs_count::{fn_name}::{params_name}::{type_name}")
}; };
let results_file = Path::new("erc20_pbs_count.csv"); let results_file = Path::new("erc20_pbs_count.csv");
@@ -327,7 +328,7 @@ mod pbs_stats {
write_to_json::<u64, _>( write_to_json::<u64, _>(
&test_name, &test_name,
params, params,
params.name(), params_name,
"pbs-count", "pbs-count",
&OperatorType::Atomic, &OperatorType::Atomic,
0, 0,
@@ -351,7 +352,10 @@ fn bench_transfer_latency<FheType, F>(
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
configure_gpu(client_key); configure_gpu(client_key);
let bench_id = format!("{bench_name}::{fn_name}::{type_name}"); let params = client_key.computation_parameters();
let params_name = params.name();
let bench_id = format!("{bench_name}::{fn_name}::{params_name}::{type_name}");
c.bench_function(&bench_id, |b| { c.bench_function(&bench_id, |b| {
let mut rng = thread_rng(); let mut rng = thread_rng();
@@ -368,12 +372,10 @@ fn bench_transfer_latency<FheType, F>(
}) })
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), params_name,
"erc20-transfer", "erc20-transfer",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -402,7 +404,11 @@ fn bench_transfer_latency_simd<FheType, F>(
.src .src
.len() .len()
/ 3; / 3;
let bench_id = format!("{bench_name}::{fn_name}::{type_name}");
let params = client_key.computation_parameters();
let params_name = params.name();
let bench_id = format!("{bench_name}::{fn_name}::{params_name}::{type_name}");
c.bench_function(&bench_id, |b| { c.bench_function(&bench_id, |b| {
let mut rng = thread_rng(); let mut rng = thread_rng();
@@ -427,12 +433,10 @@ fn bench_transfer_latency_simd<FheType, F>(
}) })
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), params_name,
"erc20-simd-transfer", "erc20-simd-transfer",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -454,10 +458,14 @@ fn bench_transfer_throughput<FheType, F>(
{ {
let mut rng = thread_rng(); let mut rng = thread_rng();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [10, 100, 500] { for num_elems in [10, 100, 500] {
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = let bench_id = format!(
format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); "{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let from_amounts = (0..num_elems) let from_amounts = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -479,12 +487,10 @@ fn bench_transfer_throughput<FheType, F>(
}) })
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"erc20-transfer", "erc20-transfer",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -513,11 +519,16 @@ fn cuda_bench_transfer_throughput<FheType, F>(
.map(|i| compressed_server_key.decompress_to_specific_gpu(GpuIndex::new(i as u32))) .map(|i| compressed_server_key.decompress_to_specific_gpu(GpuIndex::new(i as u32)))
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let params = client_key.computation_parameters();
let params_name = params.name();
// 200 * num_gpus seems to be enough for maximum throughput on 8xH100 SXM5 // 200 * num_gpus seems to be enough for maximum throughput on 8xH100 SXM5
let num_elems = 200 * num_gpus; let num_elems = 200 * num_gpus;
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); let bench_id = format!(
"{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let from_amounts = (0..num_elems) let from_amounts = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -565,12 +576,10 @@ fn cuda_bench_transfer_throughput<FheType, F>(
}); });
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"erc20-transfer", "erc20-transfer",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -593,10 +602,14 @@ fn hpu_bench_transfer_throughput<FheType, F>(
{ {
let mut rng = thread_rng(); let mut rng = thread_rng();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [10, 100] { for num_elems in [10, 100] {
group.throughput(Throughput::Elements(num_elems)); group.throughput(Throughput::Elements(num_elems));
let bench_id = let bench_id = format!(
format!("{bench_name}::throughput::{fn_name}::{type_name}::{num_elems}_elems"); "{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{num_elems}_elems"
);
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let from_amounts = (0..num_elems) let from_amounts = (0..num_elems)
.map(|_| FheType::encrypt(rng.gen::<u64>(), client_key)) .map(|_| FheType::encrypt(rng.gen::<u64>(), client_key))
@@ -627,12 +640,10 @@ fn hpu_bench_transfer_throughput<FheType, F>(
}); });
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"erc20-transfer", "erc20-transfer",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,
@@ -663,11 +674,15 @@ fn hpu_bench_transfer_throughput_simd<FheType, F>(
.len() .len()
/ 3; / 3;
let mut rng = thread_rng(); let mut rng = thread_rng();
let params = client_key.computation_parameters();
let params_name = params.name();
for num_elems in [2, 8] { for num_elems in [2, 8] {
let real_num_elems = num_elems * (hpu_simd_n as u64); let real_num_elems = num_elems * (hpu_simd_n as u64);
group.throughput(Throughput::Elements(real_num_elems)); group.throughput(Throughput::Elements(real_num_elems));
let bench_id = let bench_id =
format!("{bench_name}::throughput::{fn_name}::{type_name}::{real_num_elems}_elems"); format!("{bench_name}::throughput::{fn_name}::{params_name}::{type_name}::{real_num_elems}_elems");
group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| { group.bench_with_input(&bench_id, &num_elems, |b, &num_elems| {
let from_amounts = (0..num_elems) let from_amounts = (0..num_elems)
.map(|_| { .map(|_| {
@@ -710,12 +725,10 @@ fn hpu_bench_transfer_throughput_simd<FheType, F>(
}); });
}); });
let params = client_key.computation_parameters();
write_to_json::<u64, _>( write_to_json::<u64, _>(
&bench_id, &bench_id,
params, params,
params.name(), &params_name,
"erc20-simd-ransfer", "erc20-simd-ransfer",
&OperatorType::Atomic, &OperatorType::Atomic,
64, 64,

View File

@@ -77,11 +77,12 @@ fn bench_sns_only_fhe_type<FheType>(
let mut bench_group = c.benchmark_group(type_name); let mut bench_group = c.benchmark_group(type_name);
let bench_id_prefix = if cfg!(feature = "gpu") { let bench_id_prefix = if cfg!(feature = "gpu") {
format!("hlapi::cuda::{}", noise_param.name()) "hlapi::cuda".to_string()
} else { } else {
"hlapi".to_string() "hlapi".to_string()
}; };
let bench_id_suffix = format!("noise_squash::{type_name}"); let noise_param_name = noise_param.name();
let bench_id_suffix = format!("noise_squash::{noise_param_name}::{type_name}");
let mut rng = thread_rng(); let mut rng = thread_rng();
@@ -218,11 +219,12 @@ fn bench_decomp_sns_comp_fhe_type<FheType>(
let mut bench_group = c.benchmark_group(type_name); let mut bench_group = c.benchmark_group(type_name);
let bench_id_prefix = if cfg!(feature = "gpu") { let bench_id_prefix = if cfg!(feature = "gpu") {
format!("hlapi::cuda::{}", noise_param.name()) "hlapi::cuda".to_string()
} else { } else {
"hlapi".to_string() "hlapi".to_string()
}; };
let bench_id_suffix = format!("decomp_noise_squash_comp::{type_name}"); let noise_param_name = noise_param.name();
let bench_id_suffix = format!("decomp_noise_squash_comp::{noise_param_name}::{type_name}");
let mut rng = thread_rng(); let mut rng = thread_rng();