mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-09 14:47:56 -05:00
chore: adds params_to_file for noise squashing compression
This commit is contained in:
committed by
Nicolas Sarlin
parent
075b2259d3
commit
c7ec835e5f
@@ -11,12 +11,13 @@ use tfhe::keycache::NamedParam;
|
||||
use tfhe::shortint::parameters::current_params::{
|
||||
VEC_ALL_CLASSIC_PBS_PARAMETERS, VEC_ALL_COMPACT_PUBLIC_KEY_ENCRYPTION_PARAMETERS,
|
||||
VEC_ALL_COMPRESSION_PARAMETERS, VEC_ALL_HPU_PARAMETERS, VEC_ALL_KS32_PARAMETERS,
|
||||
VEC_ALL_MULTI_BIT_PBS_PARAMETERS, VEC_ALL_NOISE_SQUASHING_PARAMETERS,
|
||||
VEC_ALL_MULTI_BIT_PBS_PARAMETERS, VEC_ALL_NOISE_SQUASHING_COMPRESSION_PARAMETERS,
|
||||
VEC_ALL_NOISE_SQUASHING_MULTI_BIT_PARAMETERS, VEC_ALL_NOISE_SQUASHING_PARAMETERS,
|
||||
};
|
||||
use tfhe::shortint::parameters::noise_squashing::NoiseSquashingMultiBitParameters;
|
||||
use tfhe::shortint::parameters::v1_3::VEC_ALL_NOISE_SQUASHING_MULTI_BIT_PARAMETERS;
|
||||
use tfhe::shortint::parameters::{
|
||||
CompactPublicKeyEncryptionParameters, CompressionParameters, NoiseSquashingParameters,
|
||||
CompactPublicKeyEncryptionParameters, CompressionParameters,
|
||||
NoiseSquashingCompressionParameters, NoiseSquashingParameters,
|
||||
};
|
||||
use tfhe::shortint::AtomicPatternParameters;
|
||||
|
||||
@@ -246,6 +247,36 @@ impl ParamDetails<u128> for NoiseSquashingMultiBitParameters {
|
||||
}
|
||||
}
|
||||
|
||||
impl ParamDetails<u128> for NoiseSquashingCompressionParameters {
|
||||
fn lwe_dimension(&self) -> LweDimension {
|
||||
panic!("lwe_dimension not applicable for NoiseSquashingCompressionParameters")
|
||||
}
|
||||
|
||||
fn glwe_dimension(&self) -> GlweDimension {
|
||||
self.packing_ks_glwe_dimension
|
||||
}
|
||||
|
||||
fn lwe_noise_distribution(&self) -> DynamicDistribution<u128> {
|
||||
panic!("lwe_noise_distribution not applicable for NoiseSquashingCompressionParameters")
|
||||
}
|
||||
|
||||
fn glwe_noise_distribution(&self) -> DynamicDistribution<u128> {
|
||||
self.packing_ks_key_noise_distribution
|
||||
}
|
||||
|
||||
fn polynomial_size(&self) -> PolynomialSize {
|
||||
self.packing_ks_polynomial_size
|
||||
}
|
||||
|
||||
fn lwe_ciphertext_modulus(&self) -> ParamModulus {
|
||||
panic!("lwe_ciphertext_modulus not applicable for NoiseSquashingCompressionParameters")
|
||||
}
|
||||
|
||||
fn glwe_ciphertext_modulus(&self) -> ParamModulus {
|
||||
ParamModulus::from_ciphertext_modulus(self.ciphertext_modulus)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Hash)]
|
||||
enum ParametersFormat {
|
||||
Lwe,
|
||||
@@ -535,6 +566,16 @@ fn main() {
|
||||
ParametersFormat::Glwe,
|
||||
);
|
||||
|
||||
let noise_squasing_compression_params: Vec<_> = VEC_ALL_NOISE_SQUASHING_COMPRESSION_PARAMETERS
|
||||
.into_iter()
|
||||
.map(|p| (*p.0, Some(p.1)))
|
||||
.collect();
|
||||
write_all_params_in_file(
|
||||
"shortint_noise_squashing_compression_parameters_lattice_estimator.sage",
|
||||
&noise_squasing_compression_params,
|
||||
ParametersFormat::Glwe,
|
||||
);
|
||||
|
||||
let ks32_params: Vec<_> = VEC_ALL_KS32_PARAMETERS
|
||||
.into_iter()
|
||||
.map(|p| (AtomicPatternParameters::from(*p.0), Some(p.1)))
|
||||
|
||||
@@ -8,7 +8,6 @@ use crate::shortint::parameters::coverage_parameters::*;
|
||||
use crate::shortint::parameters::current_params::*;
|
||||
use crate::shortint::parameters::noise_squashing::NoiseSquashingMultiBitParameters;
|
||||
use crate::shortint::parameters::parameters_wopbs::*;
|
||||
use crate::shortint::parameters::v1_3::V1_3_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128;
|
||||
use crate::shortint::parameters::*;
|
||||
use crate::shortint::wopbs::WopbsKey;
|
||||
use crate::shortint::{ClientKey, KeySwitchingKey, ServerKey};
|
||||
@@ -497,6 +496,10 @@ named_params_impl!( NoiseSquashingMultiBitParameters =>
|
||||
V1_3_NOISE_SQUASHING_PARAM_GPU_MULTI_BIT_GROUP_4_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
|
||||
);
|
||||
|
||||
named_params_impl!( NoiseSquashingCompressionParameters =>
|
||||
V1_3_NOISE_SQUASHING_COMP_PARAM_MESSAGE_2_CARRY_2_KS_PBS_TUNIFORM_2M128,
|
||||
);
|
||||
|
||||
impl From<AtomicPatternParameters> for (ClientKey, ServerKey) {
|
||||
fn from(param: AtomicPatternParameters) -> Self {
|
||||
let param_set = ShortintParameterSet::from(param);
|
||||
|
||||
Reference in New Issue
Block a user