heir
heir copied to clipboard
A compiler for homomorphic encryption
An emitter for Jaxite. It has the basic functionality to emit jaxite code for add_one circuit with lut3.
In particular, immediate ntt/intt pairs can be elided. Depends on https://github.com/google/heir/issues/182
https://synthical.com/article/073e4b99-abf7-41a5-a3a2-d9e2962eedfb CiFlow: Dataflow Analysis and Optimization of Key Switching for Homomorphic Encryption Abstract: Homomorphic encryption (HE) is a privacy-preserving computation technique that enables computation on encrypted data. Today, the potential...
verilog: add memref.load, func.call and arithmetic index ops support to emitter This adds support for function calls in the generic body as separate verilog submodules, and support for variable index...
@AlexanderViand-Intel I may need your help here. I haven't figured out how to build HECO yet (everything succeeds in your repo instructions up to the linking step, then it fails...
OpenFHE's MakePackedPlaintext will zero-pad to the ring degree N, and this breaks the rotate-and-reduce trick, so instead in the simple_sum_test.cpp test harness, I manually repeat the coefficients cyclically until it...
After https://github.com/google/heir/pull/587 the box_blur_64x64 test takes ~53 minutes to compile (up from 1.5 minutes) and canonicalizer takes ~50 minutes of that (95%). Long term we're going to need to be...
Given that `ReLU(x) = x (0.5 + 0.5 sgn(x))`, this reduces to approximating the sign function, and this paper appears to have the state of the art: https://eprint.iacr.org/2020/834 Also note...
Pending - https://github.com/llvm/llvm-project/pull/91137 - https://github.com/llvm/llvm-project/pull/91410
Right now poly.poly has a custom builder to get the defaults working properly, but tablegen is supposed to have native support for default valued attributes. I couldn't get it to...