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

Struct FPGAObject_NTT stores the NTT blob of objects to be transfered to the FPGA. More...

#include <fpga.h>

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

Public Member Functions

 FPGAObject_NTT (const cl_context &context, uint64_t coeff_count, uint64_t batch_size)
 
 ~FPGAObject_NTT ()
 
 FPGAObject_NTT (const FPGAObject_NTT &)=delete
 
FPGAObject_NTToperator= (const FPGAObject_NTT &)=delete
 
void fill_in_data (const std::vector< Object * > &objs) override
 
void fill_out_data (uint64_t *coeff_poly) 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 * coeff_poly_in_svm_
 
uint64_t * root_of_unity_powers_in_svm_
 
uint64_t * precon_root_of_unity_powers_in_svm_
 
uint64_t * coeff_modulus_in_svm_
 
uint64_t n_
 
- 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_NTT stores the NTT blob of objects to be transfered to the FPGA.

fill_in_data

Parameters
[in]vectorof objects fill_out_data
[out]vectorof polynomial coefficients

coeff_poly_in_svm vector of polynomial coefficients root_of_unity_powers_in_svm twiddle factors precon_root_of_unity_powers_in_svm inverse twiddle factors coeff_modulus_in_svm_ polynomial coefficients modulus n polynomial size

Constructor & Destructor Documentation

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

Member Function Documentation

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

Member Data Documentation

uint64_t* intel::hexl::fpga::FPGAObject_NTT::coeff_modulus_in_svm_
uint64_t* intel::hexl::fpga::FPGAObject_NTT::coeff_poly_in_svm_
uint64_t intel::hexl::fpga::FPGAObject_NTT::n_
uint64_t* intel::hexl::fpga::FPGAObject_NTT::precon_root_of_unity_powers_in_svm_
uint64_t* intel::hexl::fpga::FPGAObject_NTT::root_of_unity_powers_in_svm_

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