From 6abed1f22811a40dc73dd8bcf6f5b3821a8c1f88 Mon Sep 17 00:00:00 2001 From: Thomas Montaigu Date: Mon, 29 Sep 2025 16:08:53 +0200 Subject: [PATCH] chore: complete gpu meta params Add noise-squashing params, noise-squashing compression and re-rand --- tfhe/src/shortint/parameters/v1_4/meta/gpu.rs | 47 ++++++++++++++++--- tfhe/src/shortint/parameters/v1_4/mod.rs | 10 ++-- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/tfhe/src/shortint/parameters/v1_4/meta/gpu.rs b/tfhe/src/shortint/parameters/v1_4/meta/gpu.rs index 5653e13ed..b29474283 100644 --- a/tfhe/src/shortint/parameters/v1_4/meta/gpu.rs +++ b/tfhe/src/shortint/parameters/v1_4/meta/gpu.rs @@ -1,4 +1,6 @@ -use super::super::super::meta::MetaParameters; +use super::super::super::meta::{DedicatedCompactPublicKeyParameters, MetaParameters}; +use super::super::compact_public_key_only::p_fail_2_minus_128::ks_pbs::*; +use super::super::key_switching::p_fail_2_minus_128::ks_pbs_gpu::*; use super::super::list_compression::p_fail_2_minus_128::*; use super::super::list_compression::p_fail_2_minus_64::*; use super::super::multi_bit::gaussian::p_fail_2_minus_128::ks_pbs_gpu::*; @@ -7,7 +9,9 @@ use super::super::multi_bit::gaussian::p_fail_2_minus_64::ks_pbs_gpu::*; use super::super::multi_bit::tuniform::p_fail_2_minus_128::ks_pbs_gpu::*; use super::super::multi_bit::tuniform::p_fail_2_minus_40::ks_pbs_gpu::*; use super::super::multi_bit::tuniform::p_fail_2_minus_64::ks_pbs_gpu::*; -use crate::shortint::parameters::Backend; +use super::super::noise_squashing::p_fail_2_minus_128::*; + +use crate::shortint::parameters::{Backend, MetaNoiseSquashingParameters}; use crate::shortint::{AtomicPatternParameters, PBSParameters}; pub const V1_4_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_2_KS_PBS_GAUSSIAN_2M40: MetaParameters = @@ -844,18 +848,49 @@ pub const V1_4_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaP re_randomization_parameters: None, }; -pub const V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = +pub const V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128: MetaParameters = MetaParameters { backend: Backend::CudaGpu, compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, )), - dedicated_compact_public_key_parameters: None, + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_4_PARAM_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_4_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + }), compression_parameters: Some( + V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_4_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + re_randomization_parameters: Some(V1_4_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), + }; + +pub const V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128: MetaParameters = + MetaParameters { + backend: Backend::CudaGpu, + compute_parameters: AtomicPatternParameters::Standard(PBSParameters::MultiBitPBS( + V1_4_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + )), + dedicated_compact_public_key_parameters: Some(DedicatedCompactPublicKeyParameters { + pke_params: V1_4_PARAM_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128_ZKV2, + ksk_params: + V1_4_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_SMALL_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + }), compression_parameters: Some( V1_4_COMP_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, ), - noise_squashing_parameters: None, - re_randomization_parameters: None, + noise_squashing_parameters: Some(MetaNoiseSquashingParameters { + parameters: V1_4_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + compression_parameters: Some( + V1_4_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128, + ), + }), + re_randomization_parameters: Some(V1_4_PARAM_MULTI_BIT_GROUP_4_KEYSWITCH_PKE_TO_BIG_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128), }; pub const V1_4_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128: MetaParameters = diff --git a/tfhe/src/shortint/parameters/v1_4/mod.rs b/tfhe/src/shortint/parameters/v1_4/mod.rs index a0c970013..97f5648fe 100644 --- a/tfhe/src/shortint/parameters/v1_4/mod.rs +++ b/tfhe/src/shortint/parameters/v1_4/mod.rs @@ -1747,7 +1747,7 @@ pub const VEC_ALL_HPU_PARAMETERS: [(&KeySwitch32PBSParameters, &str); 3] = [ ]; /// All [`MetaParameters`] in this module. -pub const VEC_ALL_META_PARAMETERS: [(&MetaParameters, &str); 172] = [ +pub const VEC_ALL_META_PARAMETERS: [(&MetaParameters, &str); 173] = [ ( &V1_4_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M40, "V1_4_META_PARAM_CPU_1_1_KS_PBS_GAUSSIAN_2M40", @@ -2425,8 +2425,12 @@ pub const VEC_ALL_META_PARAMETERS: [(&MetaParameters, &str); 172] = [ "V1_4_META_PARAM_GPU_1_1_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", ), ( - &V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128, - "V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128", + &V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128, + "V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_BIG_ZKV2_TUNIFORM_2M128", + ), + ( + &V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128, + "V1_4_META_PARAM_GPU_2_2_MULTI_BIT_GROUP_4_KS_PBS_PKE_TO_SMALL_ZKV2_TUNIFORM_2M128", ), ( &V1_4_META_PARAM_GPU_3_3_MULTI_BIT_GROUP_4_KS_PBS_TUNIFORM_2M128,