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.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | List of all members
intel::hexl::fpga::FPGAObject_KeySwitch Struct Reference

Struct FPGAObject_KeySwitch Stores the keyswitch blob of objects to be transfered to the FPGA. More...

#include <fpga.h>

Inheritance diagram for intel::hexl::fpga::FPGAObject_KeySwitch:
intel::hexl::fpga::FPGAObject

Public Member Functions

 FPGAObject_KeySwitch (const cl_context &context, uint64_t batch_size)
 
 ~FPGAObject_KeySwitch ()
 
 FPGAObject_KeySwitch (const FPGAObject_KeySwitch &)=delete
 
FPGAObject_KeySwitchoperator= (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_
 

Detailed Description

Struct FPGAObject_KeySwitch Stores the keyswitch blob of objects to be transfered to the FPGA.

fill_in_data

Parameters
[in]vectorof objects fill_out_data
[out]resultsstores 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

Constructor & Destructor Documentation

intel::hexl::fpga::FPGAObject_KeySwitch::FPGAObject_KeySwitch ( const cl_context &  context,
uint64_t  batch_size 
)
explicit
intel::hexl::fpga::FPGAObject_KeySwitch::~FPGAObject_KeySwitch ( )
intel::hexl::fpga::FPGAObject_KeySwitch::FPGAObject_KeySwitch ( const FPGAObject_KeySwitch )
delete

Member Function Documentation

void intel::hexl::fpga::FPGAObject_KeySwitch::fill_in_data ( const std::vector< Object * > &  objs)
overridevirtual
void intel::hexl::fpga::FPGAObject_KeySwitch::fill_out_data ( uint64_t *  results)
overridevirtual
FPGAObject_KeySwitch& intel::hexl::fpga::FPGAObject_KeySwitch::operator= ( const FPGAObject_KeySwitch )
delete

Member Data Documentation

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_

The documentation for this struct was generated from the following file: