|
Intel HE Acceleration Library for FPGAs
Intel Homomorphic Encryption Acceleration Library for FPGAs, accelerating the modular arithmetic operations used in homomorphic encryption on Intel FPGAs.
|
#include <atomic>#include <condition_variable>#include <deque>#include <future>#include <memory>#include <mutex>#include <thread>#include <unordered_map>#include <vector>#include "CL/opencl.h"Go to the source code of this file.
Classes | |
| struct | intel::hexl::fpga::moduli_info_t |
| Struct moduli_info_t. More... | |
| struct | intel::hexl::fpga::KeySwitch_modulus_t |
| Struct KeySwitch_moduli_t. More... | |
| struct | intel::hexl::fpga::KeySwitch_invn_t |
| Struct KeySwitch_invn_t. More... | |
| struct | intel::hexl::fpga::__attribute__ |
| Struct DyadmultKeys1_t. More... | |
| struct | intel::hexl::fpga::__attribute__ |
| Struct DyadmultKeys1_t. More... | |
| struct | intel::hexl::fpga::__attribute__ |
| Struct DyadmultKeys1_t. More... | |
| struct | intel::hexl::fpga::Object |
| Struct Object. More... | |
| struct | intel::hexl::fpga::Object_NTT |
| Struct Object NTT Stores the Number Theoretic Transform parameters. More... | |
| struct | intel::hexl::fpga::Object_INTT |
| Struct Object INTT Stores the Inverse Number Theoretic Transform parameters. More... | |
| struct | intel::hexl::fpga::Object_DyadicMultiply |
| struct Object_DyadicMultiply Stores the parameters for the multiplication More... | |
| struct | intel::hexl::fpga::Object_KeySwitch |
| struct Object_KeySwitch Stores the parameters for the keyswitch More... | |
| class | intel::hexl::fpga::Buffer |
| Struct Buffer Structure containing information for the polynomial operations. More... | |
| struct | intel::hexl::fpga::FPGAObject |
| Parent Struct FPGAObject stores the blob of objects to be transfered to the FPGA. More... | |
| struct | intel::hexl::fpga::FPGAObject_NTT |
| Struct FPGAObject_NTT stores the NTT blob of objects to be transfered to the FPGA. More... | |
| struct | intel::hexl::fpga::FPGAObject_INTT |
| Struct FPGAObject_INTT stores the INTT blob of objects to be transfered to the FPGA. More... | |
| struct | intel::hexl::fpga::FPGAObject_DyadicMultiply |
| Struct FPGAObject_DyadicMultiply Stores the multiplication blob of objects to be transfered to the FPGA. More... | |
| struct | intel::hexl::fpga::FPGAObject_KeySwitch |
| Struct FPGAObject_KeySwitch Stores the keyswitch blob of objects to be transfered to the FPGA. More... | |
| struct | intel::hexl::fpga::KeySwitchMemKeys |
| class | intel::hexl::fpga::Device |
| Class Device. More... | |
| class | intel::hexl::fpga::DevicePool |
| Class DevicePool. More... | |
Namespaces | |
| intel | |
| intel::hexl | |
| intel::hexl::fpga | |
Macros | |
| #define | BIT_MASK(BITS) ((1UL << BITS) - 1) |
| #define | MAX_RNS_MODULUS_SIZE 7 |
| #define | RWMEM_FLAG 1 |
Enumerations | |
| enum | intel::hexl::fpga::KeySwitch_Kernels { intel::hexl::fpga::KEYSWITCH_LOAD, intel::hexl::fpga::KEYSWITCH_STORE, intel::hexl::fpga::KEYSWITCH_NUM_KERNELS } |
| enum | intel::hexl::fpga::kernel_t { intel::hexl::fpga::NONE, intel::hexl::fpga::kernel_t::DYADIC_MULTIPLY, intel::hexl::fpga::kernel_t::NTT, intel::hexl::fpga::kernel_t::INTT, intel::hexl::fpga::kernel_t::KEYSWITCH, intel::hexl::fpga::kernel_t::DYADIC_MULTIPLY_KEYSWITCH } |
| enum | intel::hexl::fpga::DEV_TYPE { intel::hexl::fpga::NONE = 0, intel::hexl::fpga::NONE, intel::hexl::fpga::EMU, intel::hexl::fpga::FPGA } |
| enum DEV_TYPE Lists the available device mode: emulation mode, FPGA More... | |
Functions | |
| void | intel::hexl::fpga::attach_fpga_pooling () |
| attach_fpga_pooling Attach a device to this thread More... | |
| void | intel::hexl::fpga::detach_fpga_pooling () |
| detach_fpga_pooling Detach a device from this thread More... | |
Variables | |
| __extension__ typedef unsigned __int128 | intel::hexl::fpga::fpga_uint128_t |
| #define BIT_MASK | ( | BITS | ) | ((1UL << BITS) - 1) |
| #define MAX_RNS_MODULUS_SIZE 7 |
| #define RWMEM_FLAG 1 |
1.8.5