|
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.
|
Struct FPGAObject_KeySwitch Stores the keyswitch blob of objects to be transfered to the FPGA. More...
#include <fpga.h>
Public Member Functions | |
| FPGAObject_KeySwitch (const cl_context &context, uint64_t batch_size) | |
| ~FPGAObject_KeySwitch () | |
| FPGAObject_KeySwitch (const FPGAObject_KeySwitch &)=delete | |
| FPGAObject_KeySwitch & | operator= (const FPGAObject_KeySwitch &)=delete |
| void | fill_in_data (const std::vector< Object * > &objs) override |
| void | fill_out_data (uint64_t *results) override |
Public Member Functions inherited from intel::hexl::fpga::FPGAObject | |
| FPGAObject (const cl_context &context, uint64_t n_batch, kernel_t type=kernel_t::NONE, bool fence=false) | |
| virtual | ~FPGAObject ()=default |
| void | recycle () |
Public Attributes | |
| uint64_t | n_ |
| uint64_t | decomp_modulus_size_ |
| uint64_t | key_modulus_size_ |
| uint64_t | rns_modulus_size_ |
| uint64_t | key_component_count_ |
| uint64_t * | moduli_ |
| uint64_t ** | k_switch_keys_ |
| uint64_t * | modswitch_factors_ |
| uint64_t * | twiddle_factors_ |
| uint64_t * | ms_output_ |
| cl_mem | mem_t_target_iter_ptr_ |
| cl_mem | mem_KeySwitch_results_ |
Public Attributes inherited from intel::hexl::fpga::FPGAObject | |
| const cl_context & | context_ |
| int | tag_ |
| uint64_t | n_batch_ |
| uint64_t | batch_size_ |
| kernel_t | type_ |
| bool | fence_ |
| std::vector< Object * > | in_objs_ |
Additional Inherited Members | |
Static Public Attributes inherited from intel::hexl::fpga::FPGAObject | |
| static std::atomic< int > | g_tag_ |
Struct FPGAObject_KeySwitch Stores the keyswitch blob of objects to be transfered to the FPGA.
fill_in_data
| [in] | vector | of objects fill_out_data |
| [out] | results | stores the keyswitch results results stores the output ciphertext data t_target_iter_ptr stores the input ciphertext data n stores polynomial size decomp_modulus_size stores modulus size key_modulus_size stores key modulus size rns_modulus_size stores the rns modulus size key_component_size stores the key component size moduli stores the moduli k_switch_keys stores the keys for keyswitch operation modswitch_factors stores the factors for modular switch twiddle_factors stores the twiddle factors |
|
explicit |
| intel::hexl::fpga::FPGAObject_KeySwitch::~FPGAObject_KeySwitch | ( | ) |
|
delete |
|
overridevirtual |
Implements intel::hexl::fpga::FPGAObject.
|
overridevirtual |
Implements intel::hexl::fpga::FPGAObject.
|
delete |
| uint64_t intel::hexl::fpga::FPGAObject_KeySwitch::decomp_modulus_size_ |
| uint64_t** intel::hexl::fpga::FPGAObject_KeySwitch::k_switch_keys_ |
| uint64_t intel::hexl::fpga::FPGAObject_KeySwitch::key_component_count_ |
| uint64_t intel::hexl::fpga::FPGAObject_KeySwitch::key_modulus_size_ |
| cl_mem intel::hexl::fpga::FPGAObject_KeySwitch::mem_KeySwitch_results_ |
| cl_mem intel::hexl::fpga::FPGAObject_KeySwitch::mem_t_target_iter_ptr_ |
| uint64_t* intel::hexl::fpga::FPGAObject_KeySwitch::modswitch_factors_ |
| uint64_t* intel::hexl::fpga::FPGAObject_KeySwitch::moduli_ |
| uint64_t* intel::hexl::fpga::FPGAObject_KeySwitch::ms_output_ |
| uint64_t intel::hexl::fpga::FPGAObject_KeySwitch::n_ |
| uint64_t intel::hexl::fpga::FPGAObject_KeySwitch::rns_modulus_size_ |
| uint64_t* intel::hexl::fpga::FPGAObject_KeySwitch::twiddle_factors_ |
1.8.5