chore(gpu): update gpu parameters

This commit is contained in:
Guillermo Oyarzun
2024-06-13 11:51:21 +02:00
committed by Agnès Leroy
parent e825277219
commit c35cb4998d
4 changed files with 62 additions and 58 deletions

View File

@@ -1,5 +1,4 @@
//! #Warning experimental
pub mod p_fail_2_minus_40;
pub mod p_fail_2_minus_64;
use super::CiphertextConformanceParams;
@@ -10,8 +9,8 @@ pub use crate::core_crypto::commons::parameters::{
};
use crate::core_crypto::prelude::{LweCiphertextParameters, MsDecompressionType};
use crate::shortint::ciphertext::{Degree, MaxNoiseLevel, NoiseLevel};
use crate::shortint::parameters::p_fail_2_minus_40::ks_pbs_gpu::*;
use crate::shortint::parameters::p_fail_2_minus_64::ks_pbs::*;
use crate::shortint::parameters::p_fail_2_minus_64::ks_pbs_gpu::*;
use crate::shortint::parameters::{
CarryModulus, CiphertextModulus, EncryptionKeyChoice, LweBskGroupingFactor, MessageModulus,
};
@@ -119,14 +118,14 @@ pub const DEFAULT_MULTI_BIT_GROUP_3: MultiBitPBSParameters =
// GPU
pub const PARAM_GPU_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_2_KS_PBS: MultiBitPBSParameters =
PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40;
PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64;
pub const PARAM_GPU_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2_KS_PBS: MultiBitPBSParameters =
PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40;
PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64;
pub const PARAM_GPU_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_2_KS_PBS: MultiBitPBSParameters =
PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40;
PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64;
pub const PARAM_GPU_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_3_KS_PBS: MultiBitPBSParameters =
PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40;
PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64;
pub const PARAM_GPU_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3_KS_PBS: MultiBitPBSParameters =
PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40;
PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64;
pub const PARAM_GPU_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_3_KS_PBS: MultiBitPBSParameters =
PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40;
PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64;

View File

@@ -1 +0,0 @@
pub mod ks_pbs_gpu;

View File

@@ -4,75 +4,78 @@ use crate::shortint::parameters::multi_bit::MultiBitPBSParameters;
use crate::shortint::parameters::{CarryModulus, MessageModulus};
// Group 2
pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40:
// p-fail = 2^-64.577, algorithmic cost ~ 65, 2-norm = 3
pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64:
MultiBitPBSParameters = MultiBitPBSParameters {
lwe_dimension: LweDimension(764),
glwe_dimension: GlweDimension(3),
lwe_dimension: LweDimension(786),
glwe_dimension: GlweDimension(4),
polynomial_size: PolynomialSize(512),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.000006025673585415336,
8.135492209468212e-06,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000000000039666089171633006,
2.845267479601915e-15,
)),
pbs_base_log: DecompositionBaseLog(18),
pbs_base_log: DecompositionBaseLog(23),
pbs_level: DecompositionLevelCount(1),
ks_base_log: DecompositionBaseLog(6),
ks_level: DecompositionLevelCount(2),
ks_base_log: DecompositionBaseLog(4),
ks_level: DecompositionLevelCount(3),
message_modulus: MessageModulus(2),
carry_modulus: CarryModulus(2),
max_noise_level: MaxNoiseLevel::new(3),
log2_p_fail: -40.,
log2_p_fail: -64.577,
ciphertext_modulus: CiphertextModulus::new_native(),
encryption_key_choice: EncryptionKeyChoice::Big,
grouping_factor: LweBskGroupingFactor(2),
deterministic_execution: false,
};
pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40:
// p-fail = 2^-64.605, algorithmic cost ~ 83, 2-norm = 5
pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64:
MultiBitPBSParameters = MultiBitPBSParameters {
lwe_dimension: LweDimension(818),
lwe_dimension: LweDimension(842),
glwe_dimension: GlweDimension(1),
polynomial_size: PolynomialSize(2048),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.000002226459789930014,
3.0957909745987987e-06,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000000000000003152931493498455,
2.845267479601915e-15,
)),
pbs_base_log: DecompositionBaseLog(22),
pbs_level: DecompositionLevelCount(1),
ks_base_log: DecompositionBaseLog(5),
ks_level: DecompositionLevelCount(3),
ks_base_log: DecompositionBaseLog(3),
ks_level: DecompositionLevelCount(5),
message_modulus: MessageModulus(4),
carry_modulus: CarryModulus(4),
max_noise_level: MaxNoiseLevel::new(5),
log2_p_fail: -40.,
log2_p_fail: -64.605,
ciphertext_modulus: CiphertextModulus::new_native(),
encryption_key_choice: EncryptionKeyChoice::Big,
grouping_factor: LweBskGroupingFactor(2),
deterministic_execution: false,
};
pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40:
// p-fail = 2^-64.168, algorithmic cost ~ 661, 2-norm = 9
pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64:
MultiBitPBSParameters = MultiBitPBSParameters {
lwe_dimension: LweDimension(922),
lwe_dimension: LweDimension(984),
glwe_dimension: GlweDimension(1),
polynomial_size: PolynomialSize(8192),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000003272369292345697,
2.671498718807819e-07,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000000000000000002168404344971009,
2.168404344971009e-19,
)),
pbs_base_log: DecompositionBaseLog(14),
pbs_level: DecompositionLevelCount(2),
ks_base_log: DecompositionBaseLog(4),
ks_level: DecompositionLevelCount(4),
ks_base_log: DecompositionBaseLog(3),
ks_level: DecompositionLevelCount(6),
message_modulus: MessageModulus(8),
carry_modulus: CarryModulus(8),
max_noise_level: MaxNoiseLevel::new(9),
log2_p_fail: -40.,
log2_p_fail: -64.168,
ciphertext_modulus: CiphertextModulus::new_native(),
encryption_key_choice: EncryptionKeyChoice::Big,
grouping_factor: LweBskGroupingFactor(2),
@@ -80,75 +83,77 @@ pub const PARAM_GPU_MULTI_BIT_GROUP_2_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40:
};
// Group 3
pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M40:
// p-fail = 2^-64.579, algorithmic cost ~ 73, 2-norm = 3
pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_1_CARRY_1_KS_PBS_GAUSSIAN_2M64:
MultiBitPBSParameters = MultiBitPBSParameters {
lwe_dimension: LweDimension(765),
glwe_dimension: GlweDimension(3),
lwe_dimension: LweDimension(786),
glwe_dimension: GlweDimension(4),
polynomial_size: PolynomialSize(512),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.000005915594083804978,
8.135492209468212e-06,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000000000039666089171633006,
2.845267479601915e-15,
)),
pbs_base_log: DecompositionBaseLog(18),
pbs_base_log: DecompositionBaseLog(22),
pbs_level: DecompositionLevelCount(1),
ks_base_log: DecompositionBaseLog(6),
ks_level: DecompositionLevelCount(2),
ks_base_log: DecompositionBaseLog(4),
ks_level: DecompositionLevelCount(3),
message_modulus: MessageModulus(2),
carry_modulus: CarryModulus(2),
max_noise_level: MaxNoiseLevel::new(3),
log2_p_fail: -40.,
log2_p_fail: -64.579,
ciphertext_modulus: CiphertextModulus::new_native(),
encryption_key_choice: EncryptionKeyChoice::Big,
grouping_factor: LweBskGroupingFactor(3),
deterministic_execution: false,
};
pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M40:
// p-fail = 2^-65.005, algorithmic cost ~ 79, 2-norm = 5
pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_2_CARRY_2_KS_PBS_GAUSSIAN_2M64:
MultiBitPBSParameters = MultiBitPBSParameters {
lwe_dimension: LweDimension(888),
lwe_dimension: LweDimension(843),
glwe_dimension: GlweDimension(1),
polynomial_size: PolynomialSize(2048),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000006125031601933181,
3.0428360625436423e-06,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000000000000003152931493498455,
2.845267479601915e-15,
)),
pbs_base_log: DecompositionBaseLog(21),
pbs_base_log: DecompositionBaseLog(22),
pbs_level: DecompositionLevelCount(1),
ks_base_log: DecompositionBaseLog(7),
ks_level: DecompositionLevelCount(2),
ks_base_log: DecompositionBaseLog(3),
ks_level: DecompositionLevelCount(5),
message_modulus: MessageModulus(4),
carry_modulus: CarryModulus(4),
max_noise_level: MaxNoiseLevel::new(5),
log2_p_fail: -40.,
log2_p_fail: -65.005,
ciphertext_modulus: CiphertextModulus::new_native(),
encryption_key_choice: EncryptionKeyChoice::Big,
grouping_factor: LweBskGroupingFactor(3),
deterministic_execution: false,
};
pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M40:
// p-fail = 2^-64.173, algorithmic cost ~ 645, 2-norm = 9
pub const PARAM_GPU_MULTI_BIT_GROUP_3_MESSAGE_3_CARRY_3_KS_PBS_GAUSSIAN_2M64:
MultiBitPBSParameters = MultiBitPBSParameters {
lwe_dimension: LweDimension(972),
lwe_dimension: LweDimension(984),
glwe_dimension: GlweDimension(1),
polynomial_size: PolynomialSize(8192),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.00000013016688349592805,
2.671498718807819e-07,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
0.0000000000000000002168404344971009,
2.168404344971009e-19,
)),
pbs_base_log: DecompositionBaseLog(14),
pbs_level: DecompositionLevelCount(2),
ks_base_log: DecompositionBaseLog(6),
ks_level: DecompositionLevelCount(3),
ks_base_log: DecompositionBaseLog(3),
ks_level: DecompositionLevelCount(6),
message_modulus: MessageModulus(8),
carry_modulus: CarryModulus(8),
max_noise_level: MaxNoiseLevel::new(9),
log2_p_fail: -40.,
log2_p_fail: -64.173,
ciphertext_modulus: CiphertextModulus::new_native(),
encryption_key_choice: EncryptionKeyChoice::Big,
grouping_factor: LweBskGroupingFactor(3),

View File

@@ -1 +1,2 @@
pub mod ks_pbs;
pub mod ks_pbs_gpu;