You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While testing out the performance gains of the new INTEL HEXL dependency, we stumbled upon a strange case:
for our specific parameter set (plaintext_mod=4398046150657, N=16384, coeff_mod=BFVDefault) enabling HEXL uses up the full noise budget on a single ct-ct multiplication. This only happens when using HEXL on a machine that actually has avx512 instructions, the HEXL C++ implementation does not produce this behavior, nor does the SEAL implementation that does not use HEXL.
I've put together a minimal example here: https://github.com/dkales/seal_hexl_test
Here is the output for this on my machine (Intel(R) Core(TM) i5-1035G1) with feature_flags:
Using N=32768 and a comparable sized plaintext_mod works again (both HEXL=ON and HEXL=OFF have the same noise consumption)
If there something more to using Intel HEXL than just enabling it, I have not found it, even then I would expect the HEXL C++ implementation to agree with its AVX512 implementation.
If I can provide any more debug information, please let me know.
(also mentioning @fboemer since he contributed the HEXL integration)
The text was updated successfully, but these errors were encountered:
@dkales , thanks for pointing this out and tagging me. It looks like the underlying issue comes from HEXL. We'll release HEXL v1.2.1 with this fix and update the SEAL integration PR (#375) with this fix as well.
While testing out the performance gains of the new INTEL HEXL dependency, we stumbled upon a strange case:
for our specific parameter set (
plaintext_mod=4398046150657, N=16384, coeff_mod=BFVDefault
) enabling HEXL uses up the full noise budget on a single ct-ct multiplication. This only happens when using HEXL on a machine that actually has avx512 instructions, the HEXL C++ implementation does not produce this behavior, nor does the SEAL implementation that does not use HEXL.I've put together a minimal example here: https://github.com/dkales/seal_hexl_test
Here is the output for this on my machine (Intel(R) Core(TM) i5-1035G1) with feature_flags:
SEAL_USE_INTEL_HEXL=ON
SEAL_USE_INTEL_HEXL=OFF
Using
N=32768
and a comparable sized plaintext_mod works again (both HEXL=ON and HEXL=OFF have the same noise consumption)If there something more to using Intel HEXL than just enabling it, I have not found it, even then I would expect the HEXL C++ implementation to agree with its AVX512 implementation.
If I can provide any more debug information, please let me know.
(also mentioning @fboemer since he contributed the HEXL integration)
The text was updated successfully, but these errors were encountered: