mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-06 21:34:05 -05:00
- noise checks and pfail based on expected noise have been added - compatible with KS PBS and KS32 PBS
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import scipy.stats as stats
|
|
from scipy.special import erfcinv, erfc
|
|
import math
|
|
|
|
# utilities
|
|
t = 1 / (2 ** (4 + 2)) # noise bound
|
|
standard_score = lambda p_fail: math.sqrt(2) * erfcinv(p_fail) # standard score
|
|
|
|
pfail = lambda z: erfc(z / math.sqrt(2))
|
|
|
|
# Noise squashing after compression
|
|
# measured_variance = 7.598561171474912e-35
|
|
# variance_after_flood = measured_variance * (2**40 * 100) ** 2
|
|
|
|
# measured_std_dev = math.sqrt(variance_after_flood)
|
|
|
|
# New params GPU before MS 128
|
|
# measured_variance = 1.438540449823688e-6
|
|
# Rerand noise
|
|
# measured_variance = 1.4064222454361346e-6
|
|
# measured_variance = 1.408401059719539e-6
|
|
|
|
# measured_variance = 1.4120971218065554e-6 #KS32
|
|
measured_variance = 1.4150031500067098e-6
|
|
measured_std_dev = math.sqrt(measured_variance)
|
|
|
|
measured_std_score = t / measured_std_dev
|
|
|
|
estimated_pfail = pfail(measured_std_score)
|
|
|
|
print(estimated_pfail, math.log2(estimated_pfail))
|
|
|
|
|
|
# Compression encoding for 2_2
|
|
t_compression = 1 / (2 ** (2 + 2))
|
|
measured_variance = 1.0216297411906617e-5
|
|
measured_std_dev = math.sqrt(measured_variance)
|
|
|
|
measured_std_score = t_compression / measured_std_dev
|
|
|
|
estimated_pfail = pfail(measured_std_score)
|
|
print(estimated_pfail, math.log2(estimated_pfail))
|