mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-09 22:57:59 -05:00
feat(gpu): add 1_1 classical pbs params for specialized version
This commit is contained in:
committed by
Agnès Leroy
parent
9d31e994aa
commit
0f0438c8cf
@@ -8,9 +8,14 @@ pub mod shortint_params_aliases {
|
|||||||
MultiBitPBSParameters, NoiseSquashingCompressionParameters, NoiseSquashingParameters,
|
MultiBitPBSParameters, NoiseSquashingCompressionParameters, NoiseSquashingParameters,
|
||||||
ShortintKeySwitchingParameters,
|
ShortintKeySwitchingParameters,
|
||||||
};
|
};
|
||||||
|
|
||||||
// KS PBS Gaussian
|
// KS PBS Gaussian
|
||||||
|
#[cfg(not(feature = "gpu"))]
|
||||||
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||||
V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
V1_5_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
||||||
|
#[cfg(feature = "gpu")]
|
||||||
|
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||||
|
V1_5_PARAM_GPU_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128;
|
||||||
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||||
V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128;
|
V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128;
|
||||||
pub const BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
pub const BENCH_PARAM_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||||
@@ -38,7 +43,7 @@ pub mod shortint_params_aliases {
|
|||||||
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS: ClassicPBSParameters =
|
pub const BENCH_PARAM_MESSAGE_2_CARRY_2_KS_PBS: ClassicPBSParameters =
|
||||||
V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128;
|
V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128;
|
||||||
|
|
||||||
pub const BENCH_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 140] =
|
pub const BENCH_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 141] =
|
||||||
VEC_ALL_CLASSIC_PBS_PARAMETERS;
|
VEC_ALL_CLASSIC_PBS_PARAMETERS;
|
||||||
|
|
||||||
// MultiBit
|
// MultiBit
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ named_params_impl!( ShortintParameterSet =>
|
|||||||
V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128,
|
V1_5_PARAM_MESSAGE_7_CARRY_0_KS_PBS_GAUSSIAN_2M128,
|
||||||
V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
V1_5_PARAM_MESSAGE_7_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||||
V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128,
|
V1_5_PARAM_MESSAGE_8_CARRY_0_KS_PBS_GAUSSIAN_2M128,
|
||||||
|
//For the specialized classical pbs on GPU
|
||||||
|
V1_5_PARAM_GPU_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||||
// Small
|
// Small
|
||||||
V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128,
|
V1_5_PARAM_MESSAGE_1_CARRY_1_PBS_KS_GAUSSIAN_2M128,
|
||||||
V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128,
|
V1_5_PARAM_MESSAGE_2_CARRY_2_PBS_KS_GAUSSIAN_2M128,
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
use crate::shortint::parameters::{
|
||||||
|
CarryModulus, CiphertextModulus, ClassicPBSParameters, DecompositionBaseLog,
|
||||||
|
DecompositionLevelCount, DynamicDistribution, EncryptionKeyChoice, GlweDimension, LweDimension,
|
||||||
|
MaxNoiseLevel, MessageModulus, PolynomialSize,
|
||||||
|
};
|
||||||
|
use crate::shortint::prelude::{ModulusSwitchType, StandardDev};
|
||||||
|
|
||||||
|
/// p-fail = 2^-131.084, algorithmic cost ~ 90.5, 2-norm = 3
|
||||||
|
pub const V1_5_PARAM_GPU_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||||
|
ClassicPBSParameters {
|
||||||
|
lwe_dimension: LweDimension(737),
|
||||||
|
glwe_dimension: GlweDimension(1),
|
||||||
|
polynomial_size: PolynomialSize(2048),
|
||||||
|
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||||
|
1.894717698310226e-05,
|
||||||
|
)),
|
||||||
|
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
|
||||||
|
2.845267479601874e-15,
|
||||||
|
)),
|
||||||
|
pbs_base_log: DecompositionBaseLog(23),
|
||||||
|
pbs_level: DecompositionLevelCount(1),
|
||||||
|
ks_base_log: DecompositionBaseLog(3),
|
||||||
|
ks_level: DecompositionLevelCount(4),
|
||||||
|
message_modulus: MessageModulus(2),
|
||||||
|
carry_modulus: CarryModulus(2),
|
||||||
|
max_noise_level: MaxNoiseLevel::new(3),
|
||||||
|
log2_p_fail: -128.186,
|
||||||
|
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||||
|
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||||
|
modulus_switch_noise_reduction_params: ModulusSwitchType::CenteredMeanNoiseReduction,
|
||||||
|
};
|
||||||
@@ -1,2 +1,3 @@
|
|||||||
pub mod ks_pbs;
|
pub mod ks_pbs;
|
||||||
|
pub mod ks_pbs_gpu;
|
||||||
pub mod pbs_ks;
|
pub mod pbs_ks;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ pub use classic::compact_pk::gaussian::p_fail_2_minus_128::pbs_ks::*;
|
|||||||
pub use classic::compact_pk::gaussian::p_fail_2_minus_64::ks_pbs::*;
|
pub use classic::compact_pk::gaussian::p_fail_2_minus_64::ks_pbs::*;
|
||||||
pub use classic::compact_pk::gaussian::p_fail_2_minus_64::pbs_ks::*;
|
pub use classic::compact_pk::gaussian::p_fail_2_minus_64::pbs_ks::*;
|
||||||
pub use classic::gaussian::p_fail_2_minus_128::ks_pbs::*;
|
pub use classic::gaussian::p_fail_2_minus_128::ks_pbs::*;
|
||||||
|
pub use classic::gaussian::p_fail_2_minus_128::ks_pbs_gpu::*;
|
||||||
pub use classic::gaussian::p_fail_2_minus_128::pbs_ks::*;
|
pub use classic::gaussian::p_fail_2_minus_128::pbs_ks::*;
|
||||||
pub use classic::gaussian::p_fail_2_minus_40::ks_pbs::*;
|
pub use classic::gaussian::p_fail_2_minus_40::ks_pbs::*;
|
||||||
pub use classic::gaussian::p_fail_2_minus_64::ks_pbs::*;
|
pub use classic::gaussian::p_fail_2_minus_64::ks_pbs::*;
|
||||||
@@ -49,7 +50,7 @@ use crate::shortint::parameters::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// All [`ClassicPBSParameters`] in this module.
|
/// All [`ClassicPBSParameters`] in this module.
|
||||||
pub const VEC_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 140] = [
|
pub const VEC_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 141] = [
|
||||||
(
|
(
|
||||||
&V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64,
|
&V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64,
|
||||||
"V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64",
|
"V1_5_PARAM_MESSAGE_1_CARRY_0_COMPACT_PK_KS_PBS_GAUSSIAN_2M64",
|
||||||
@@ -610,6 +611,10 @@ pub const VEC_ALL_CLASSIC_PBS_PARAMETERS: [(&ClassicPBSParameters, &str); 140] =
|
|||||||
&V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128,
|
&V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128,
|
||||||
"V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128",
|
"V1_5_PARAM_MESSAGE_4_CARRY_4_KS_PBS_TUNIFORM_2M128",
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
&V1_5_PARAM_GPU_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128,
|
||||||
|
"V1_5_PARAM_GPU_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128",
|
||||||
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
/// All [`MultiBitPBSParameters`] in this module.
|
/// All [`MultiBitPBSParameters`] in this module.
|
||||||
|
|||||||
Reference in New Issue
Block a user