mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-08 22:28:01 -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,
|
||||
ShortintKeySwitchingParameters,
|
||||
};
|
||||
|
||||
// KS PBS Gaussian
|
||||
#[cfg(not(feature = "gpu"))]
|
||||
pub const BENCH_PARAM_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M128: ClassicPBSParameters =
|
||||
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 =
|
||||
V1_5_PARAM_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M128;
|
||||
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 =
|
||||
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;
|
||||
|
||||
// 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_1_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
|
||||
V1_5_PARAM_MESSAGE_1_CARRY_1_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_gpu;
|
||||
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::pbs_ks::*;
|
||||
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_40::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.
|
||||
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",
|
||||
@@ -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_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.
|
||||
|
||||
Reference in New Issue
Block a user