mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-14 09:08:06 -05:00
Compare commits
10 Commits
pa/paralle
...
bc/whitepa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74046697ae | ||
|
|
8ed5ce9baf | ||
|
|
abab9a0801 | ||
|
|
2d6f6a1854 | ||
|
|
d029612f5d | ||
|
|
3705ecec56 | ||
|
|
3d0b4e54e6 | ||
|
|
eb2692302f | ||
|
|
5a7ddfb0b1 | ||
|
|
836a8878ef |
1
.github/workflows/benchmark_core_crypto.yml
vendored
1
.github/workflows/benchmark_core_crypto.yml
vendored
@@ -121,7 +121,6 @@ jobs:
|
||||
run: |
|
||||
make bench_ks_pbs
|
||||
make bench_pbs
|
||||
make bench_pbs128
|
||||
make bench_ks
|
||||
env:
|
||||
BENCH_PARAM_TYPE: ${{ matrix.param_type }}
|
||||
|
||||
4
.github/workflows/benchmark_integer.yml
vendored
4
.github/workflows/benchmark_integer.yml
vendored
@@ -111,11 +111,11 @@ jobs:
|
||||
concurrency:
|
||||
group: ${{ github.workflow_ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
||||
timeout-minutes: 1440 # 24 hours
|
||||
timeout-minutes: 2880 # 48 hours
|
||||
strategy:
|
||||
max-parallel: 1
|
||||
matrix:
|
||||
command: [ integer, integer_multi_bit]
|
||||
command: [integer_multi_bit]
|
||||
op_flavor: ${{ fromJson(needs.prepare-matrix.outputs.op_flavor) }}
|
||||
bench_type: ${{ fromJSON(needs.prepare-matrix.outputs.bench_type) }}
|
||||
steps:
|
||||
|
||||
@@ -859,7 +859,7 @@ fn go_through_cpu_bench_groups(val: &str) {
|
||||
match val.to_lowercase().as_str() {
|
||||
"classical" => {
|
||||
ks_group();
|
||||
packing_ks_group()
|
||||
//packing_ks_group()
|
||||
}
|
||||
"multi_bit" => multi_bit_ks_group(),
|
||||
_ => panic!("unknown benchmark operations flavor"),
|
||||
|
||||
@@ -1147,11 +1147,11 @@ pub fn ks_pbs_group() {
|
||||
|
||||
pub fn multi_bit_ks_pbs_group() {
|
||||
let mut criterion: Criterion<_> = (Criterion::default()).configure_from_args();
|
||||
multi_bit_ks_pbs(
|
||||
&mut criterion,
|
||||
&multi_bit_benchmark_parameters_with_grouping(),
|
||||
false,
|
||||
);
|
||||
//multi_bit_ks_pbs(
|
||||
// &mut criterion,
|
||||
// &multi_bit_benchmark_parameters_with_grouping(),
|
||||
// false,
|
||||
//);
|
||||
multi_bit_ks_pbs(
|
||||
&mut criterion,
|
||||
&multi_bit_benchmark_parameters_with_grouping(),
|
||||
|
||||
@@ -1456,18 +1456,18 @@ use cuda::{cuda_multi_bit_pbs_group, cuda_pbs_group};
|
||||
pub fn pbs_group() {
|
||||
let mut criterion: Criterion<_> = (Criterion::default()).configure_from_args();
|
||||
mem_optimized_pbs(&mut criterion, &benchmark_parameters());
|
||||
mem_optimized_pbs(&mut criterion, &benchmark_32bits_parameters());
|
||||
mem_optimized_pbs_ntt(&mut criterion);
|
||||
mem_optimized_batched_pbs(&mut criterion, &benchmark_parameters());
|
||||
//mem_optimized_pbs(&mut criterion, &benchmark_32bits_parameters());
|
||||
//mem_optimized_pbs_ntt(&mut criterion);
|
||||
//mem_optimized_batched_pbs(&mut criterion, &benchmark_parameters());
|
||||
}
|
||||
|
||||
pub fn multi_bit_pbs_group() {
|
||||
let mut criterion: Criterion<_> = (Criterion::default()).configure_from_args();
|
||||
multi_bit_pbs(
|
||||
&mut criterion,
|
||||
&multi_bit_benchmark_parameters_with_grouping(),
|
||||
false,
|
||||
);
|
||||
//multi_bit_pbs(
|
||||
// &mut criterion,
|
||||
// &multi_bit_benchmark_parameters_with_grouping(),
|
||||
// false,
|
||||
//);
|
||||
multi_bit_pbs(
|
||||
&mut criterion,
|
||||
&multi_bit_benchmark_parameters_with_grouping(),
|
||||
|
||||
@@ -3431,34 +3431,34 @@ criterion_group!(
|
||||
|
||||
criterion_group!(
|
||||
default_parallelized_ops,
|
||||
neg_parallelized,
|
||||
abs_parallelized,
|
||||
//neg_parallelized,
|
||||
//abs_parallelized,
|
||||
add_parallelized,
|
||||
unsigned_overflowing_add_parallelized,
|
||||
sub_parallelized,
|
||||
unsigned_overflowing_sub_parallelized,
|
||||
//unsigned_overflowing_add_parallelized,
|
||||
//sub_parallelized,
|
||||
//unsigned_overflowing_sub_parallelized,
|
||||
mul_parallelized,
|
||||
unsigned_overflowing_mul_parallelized,
|
||||
//unsigned_overflowing_mul_parallelized,
|
||||
// div_parallelized,
|
||||
// rem_parallelized,
|
||||
div_rem_parallelized,
|
||||
//div_rem_parallelized,
|
||||
bitand_parallelized,
|
||||
bitnot,
|
||||
bitor_parallelized,
|
||||
bitxor_parallelized,
|
||||
left_shift_parallelized,
|
||||
right_shift_parallelized,
|
||||
rotate_left_parallelized,
|
||||
rotate_right_parallelized,
|
||||
ciphertexts_sum_parallelized,
|
||||
leading_zeros_parallelized,
|
||||
leading_ones_parallelized,
|
||||
trailing_zeros_parallelized,
|
||||
trailing_ones_parallelized,
|
||||
ilog2_parallelized,
|
||||
checked_ilog2_parallelized,
|
||||
count_zeros_parallelized,
|
||||
count_ones_parallelized,
|
||||
//bitnot,
|
||||
//bitor_parallelized,
|
||||
//bitxor_parallelized,
|
||||
//left_shift_parallelized,
|
||||
//right_shift_parallelized,
|
||||
//rotate_left_parallelized,
|
||||
//rotate_right_parallelized,
|
||||
//ciphertexts_sum_parallelized,
|
||||
//leading_zeros_parallelized,
|
||||
//leading_ones_parallelized,
|
||||
//trailing_zeros_parallelized,
|
||||
//trailing_ones_parallelized,
|
||||
//ilog2_parallelized,
|
||||
//checked_ilog2_parallelized,
|
||||
//count_zeros_parallelized,
|
||||
//count_ones_parallelized,
|
||||
);
|
||||
|
||||
criterion_group!(
|
||||
@@ -3768,11 +3768,11 @@ fn go_through_cpu_bench_groups(val: &str) {
|
||||
match val.to_lowercase().as_str() {
|
||||
"default" => {
|
||||
default_parallelized_ops();
|
||||
default_parallelized_ops_comp();
|
||||
default_scalar_parallelized_ops();
|
||||
default_scalar_parallelized_ops_comp();
|
||||
cast_ops();
|
||||
oprf()
|
||||
//default_parallelized_ops_comp();
|
||||
//default_scalar_parallelized_ops();
|
||||
//default_scalar_parallelized_ops_comp();
|
||||
//cast_ops();
|
||||
//oprf()
|
||||
}
|
||||
"fast_default" => {
|
||||
default_dedup_ops();
|
||||
|
||||
@@ -30,14 +30,14 @@ fn cpu_glwe_packing(c: &mut Criterion) {
|
||||
let log_message_modulus = param.message_modulus.0.ilog2() as usize;
|
||||
|
||||
for bit_size in [
|
||||
2,
|
||||
8,
|
||||
16,
|
||||
32,
|
||||
64,
|
||||
128,
|
||||
256,
|
||||
comp_param.lwe_per_glwe.0 * log_message_modulus,
|
||||
512,
|
||||
//comp_param.lwe_per_glwe.0 * log_message_modulus,
|
||||
] {
|
||||
assert_eq!(bit_size % log_message_modulus, 0);
|
||||
let num_blocks = bit_size / log_message_modulus;
|
||||
|
||||
@@ -42,7 +42,15 @@ pub mod shortint_params {
|
||||
BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128,
|
||||
];
|
||||
|
||||
pub const SHORTINT_BENCH_PARAMS_GAUSSIAN: [ClassicPBSParameters; 4] = [
|
||||
pub const SHORTINT_BENCH_PARAMS_GAUSSIAN: [ClassicPBSParameters; 12] = [
|
||||
BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
|
||||
@@ -60,13 +68,43 @@ pub mod shortint_params {
|
||||
];
|
||||
|
||||
#[cfg(not(feature = "gpu"))]
|
||||
pub const SHORTINT_MULTI_BIT_BENCH_PARAMS: [MultiBitPBSParameters; 6] = [
|
||||
pub const SHORTINT_MULTI_BIT_BENCH_PARAMS: [MultiBitPBSParameters; 36] = [
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128,
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128,
|
||||
];
|
||||
|
||||
#[cfg(feature = "internal-keycache")]
|
||||
@@ -77,9 +115,9 @@ pub mod shortint_params {
|
||||
|
||||
pub fn benchmark_parameters() -> Vec<(String, CryptoParametersRecord<u64>)> {
|
||||
match get_parameters_set() {
|
||||
ParametersSet::Default => SHORTINT_BENCH_PARAMS_TUNIFORM
|
||||
ParametersSet::Default => SHORTINT_BENCH_PARAMS_GAUSSIAN
|
||||
.iter()
|
||||
.chain(SHORTINT_BENCH_PARAMS_GAUSSIAN.iter())
|
||||
//.chain(SHORTINT_BENCH_PARAMS_GAUSSIAN.iter())
|
||||
.map(|params| {
|
||||
(
|
||||
params.name(),
|
||||
@@ -484,8 +522,12 @@ mod integer_params {
|
||||
];
|
||||
#[cfg(not(feature = "gpu"))]
|
||||
let params = vec![
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128
|
||||
.into(),
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(),
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(),
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(),
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128.into(),
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128.into(),
|
||||
BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128.into(),
|
||||
];
|
||||
|
||||
let params_and_bit_sizes = iproduct!(params, env_config.bit_sizes());
|
||||
@@ -499,7 +541,14 @@ mod integer_params {
|
||||
#[cfg(feature = "hpu")]
|
||||
let params = vec![BENCH_HPU_PARAM_MESSAGE_2_CARRY_2_KS32_PBS_TUNIFORM_2M128.into()];
|
||||
#[cfg(not(feature = "hpu"))]
|
||||
let params = vec![BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128.into()];
|
||||
let params = vec![
|
||||
BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64.into(),
|
||||
BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64.into(),
|
||||
BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64.into(),
|
||||
BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128.into(),
|
||||
BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128.into(),
|
||||
BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128.into()
|
||||
];
|
||||
|
||||
let params_and_bit_sizes = iproduct!(params, env_config.bit_sizes());
|
||||
Self {
|
||||
|
||||
@@ -9,6 +9,22 @@ pub mod shortint_params_aliases {
|
||||
ShortintKeySwitchingParameters,
|
||||
};
|
||||
// KS PBS Gaussian
|
||||
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
||||
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||
@@ -35,6 +51,90 @@ pub mod shortint_params_aliases {
|
||||
|
||||
// MultiBit
|
||||
// CPU Gaussian
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40;
|
||||
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40;
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40;
|
||||
|
||||
|
||||
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64;
|
||||
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64;
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M64;
|
||||
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
||||
@@ -44,6 +144,11 @@ pub mod shortint_params_aliases {
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_2_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128;
|
||||
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
||||
@@ -53,6 +158,22 @@ pub mod shortint_params_aliases {
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_3_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128;
|
||||
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128;
|
||||
pub const BENCH_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128:
|
||||
MultiBitPBSParameters =
|
||||
V1_4_PARAM_MULTI_BIT_GROUP_4_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M128;
|
||||
|
||||
// CPU TUniform
|
||||
// --- Grouping factor 2
|
||||
|
||||
@@ -346,11 +346,12 @@ pub fn write_to_json<
|
||||
|
||||
const FAST_BENCH_BIT_SIZES: [usize; 1] = [64];
|
||||
#[cfg(not(feature = "gpu"))]
|
||||
const BENCH_BIT_SIZES: [usize; 8] = [2, 8, 16, 32, 40, 64, 128, 256];
|
||||
const BENCH_BIT_SIZES: [usize; 7] = [4, 8, 16, 32, 64, 128, 256];
|
||||
#[cfg(feature = "gpu")]
|
||||
const BENCH_BIT_SIZES: [usize; 7] = [8, 16, 32, 40, 64, 128, 256];
|
||||
const BENCH_BIT_SIZES: [usize; 7] = [4, 8, 16, 32, 64, 128, 256];
|
||||
const HPU_BENCH_BIT_SIZES: [usize; 5] = [8, 16, 32, 64, 128];
|
||||
const MULTI_BIT_CPU_SIZES: [usize; 5] = [8, 16, 32, 40, 64];
|
||||
//const MULTI_BIT_CPU_SIZES: [usize; 2] = [128, 256];
|
||||
const MULTI_BIT_CPU_SIZES: [usize; 7] = [4, 8, 16, 32, 64, 128, 256];
|
||||
|
||||
/// User configuration in which benchmarks must be run.
|
||||
#[derive(Default)]
|
||||
|
||||
@@ -12,6 +12,10 @@ use crate::shortint::{ClientKey, KeySwitchingKey, ServerKey};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
named_params_impl!( ShortintParameterSet =>
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40,
|
||||
V1_4_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40,
|
||||
V1_4_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40,
|
||||
V1_4_PARAM_MESSAGE_4_CARRY_4_KS_PBS_GAUSSIAN_2M40,
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_0_KS_PBS_GAUSSIAN_2M128,
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||
V1_4_PARAM_MESSAGE_1_CARRY_2_KS_PBS_GAUSSIAN_2M128,
|
||||
|
||||
Reference in New Issue
Block a user