hebench / reference-palisade-backend

The PALISADE-CPU backend is a Reference backend engine for HEBench which is a shared library that implements the required functions specified in either the hebench::APIBridge or hebench::cpp wrapper. It is intended only as a reference on how to implement a PALISADE backend for HEBench and it is not fully optimized for performance.
Apache License 2.0
6 stars 2 forks source link

LRi (and other CKKS benchmarks) Fail Validation *somtimes* When CoeffModBits Are Set too Low #13

Closed kylanerace closed 2 years ago

kylanerace commented 2 years ago
Version Information (Put N/A for Not Applicable) Software Version(s)
Linux Ubuntu 20.04.1
Git 2.25.1
CMake 3.13.3
Compiler (GCC, Clang, etc.) gcc 9.3.0-17
GLIBC (ldd) 2.31-0ubuntu9
Doxygen N/A
HEBench Frontend v0.6.0-beta*
HEBench API Bridge v0.5.1-beta
Reference Backend dev (2775191)

*Version not released yet. Commit is (ee84413)

Describe the bug
When dealing with solutions that come out very close to zero, the comparison is so strict that it'll fail even when the ground truth and result are both basically zero.

To Reproduce
Steps to reproduce the behavior:

  1. Build & Install default reference backend
  2. Generate a config file with --dump
  3. Remove the unnecessary benchmarks not being tested (issue shows up primarily in LRi and Element-wise Mult (ckks))
  4. Set the CoeffModBits/Scale to 40 instead of the current default of 50

Expected behavior
The expectation is that even with CoeffModBits set down to 40, the accuracy will still be strong enough to pass, assuming a result is close to zero.

Screenshots
N/A

Additional context
N/A