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_DyadicMultiply Struct Reference

Struct FPGAObject_DyadicMultiply Stores the multiplication blob of objects to be transfered to the FPGA. More...

#include <fpga.h>

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

Public Member Functions

 FPGAObject_DyadicMultiply (const cl_context &context, uint64_t coeff_size, uint32_t modulus_size, uint64_t batch_size)
 
 ~FPGAObject_DyadicMultiply ()
 
 FPGAObject_DyadicMultiply (const FPGAObject_DyadicMultiply &)=delete
 
FPGAObject_DyadicMultiplyoperator= (const FPGAObject_DyadicMultiply &)=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 * operand1_in_svm_
 
uint64_t * operand2_in_svm_
 
moduli_info_tmoduli_info_
 
uint64_t n_
 
uint64_t n_moduli_
 
cl_mem operands_in_ddr_
 
cl_mem results_out_ddr_
 
- 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_DyadicMultiply Stores the multiplication blob of objects to be transfered to the FPGA.

fill_in_data

Parameters
[in]vectorof objects fill_out_data
resultsvector containing the result of the multiplication

operand1_in_svm_ First operand for the multiplication operand2_in_svm_ Second operand for the multiplication moduli_info_ structure containing information about the moduli n_ polynomial size n_moduli number of moduli operands_in_ddr_ pointer to operands in DDR memory results_out_ddr_ pointer to multiplication results in DDR

Constructor & Destructor Documentation

intel::hexl::fpga::FPGAObject_DyadicMultiply::FPGAObject_DyadicMultiply ( const cl_context &  context,
uint64_t  coeff_size,
uint32_t  modulus_size,
uint64_t  batch_size 
)
explicit
intel::hexl::fpga::FPGAObject_DyadicMultiply::~FPGAObject_DyadicMultiply ( )
intel::hexl::fpga::FPGAObject_DyadicMultiply::FPGAObject_DyadicMultiply ( const FPGAObject_DyadicMultiply )
delete

Member Function Documentation

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

Member Data Documentation

moduli_info_t* intel::hexl::fpga::FPGAObject_DyadicMultiply::moduli_info_
uint64_t intel::hexl::fpga::FPGAObject_DyadicMultiply::n_
uint64_t intel::hexl::fpga::FPGAObject_DyadicMultiply::n_moduli_
uint64_t* intel::hexl::fpga::FPGAObject_DyadicMultiply::operand1_in_svm_
uint64_t* intel::hexl::fpga::FPGAObject_DyadicMultiply::operand2_in_svm_
cl_mem intel::hexl::fpga::FPGAObject_DyadicMultiply::operands_in_ddr_
cl_mem intel::hexl::fpga::FPGAObject_DyadicMultiply::results_out_ddr_

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