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 | Static Public Attributes | List of all members
intel::hexl::fpga::FPGAObject Struct Referenceabstract

Parent Struct FPGAObject stores the blob of objects to be transfered to the FPGA. More...

#include <fpga.h>

Inheritance diagram for intel::hexl::fpga::FPGAObject:
intel::hexl::fpga::FPGAObject_DyadicMultiply intel::hexl::fpga::FPGAObject_INTT intel::hexl::fpga::FPGAObject_KeySwitch intel::hexl::fpga::FPGAObject_NTT

Public Member Functions

 FPGAObject (const cl_context &context, uint64_t n_batch, kernel_t type=kernel_t::NONE, bool fence=false)
 
virtual ~FPGAObject ()=default
 
virtual void fill_in_data (const std::vector< Object * > &objs)=0
 
virtual void fill_out_data (uint64_t *results)=0
 
void recycle ()
 

Public Attributes

const cl_context & context_
 
int tag_
 
uint64_t n_batch_
 
uint64_t batch_size_
 
kernel_t type_
 
bool fence_
 
std::vector< Object * > in_objs_
 

Static Public Attributes

static std::atomic< int > g_tag_
 

Detailed Description

Parent Struct FPGAObject stores the blob of objects to be transfered to the FPGA.

fill_in_data

Parameters
[in]vectorof objects fill_out_data
[out]vectorof results recycle releases the content context_ stores the openCL context tag_ stores the blob tag n_batch_ stores the number of batches in_objs_ vector of stored objects g_tag_ stores the global tag identifier

Constructor & Destructor Documentation

intel::hexl::fpga::FPGAObject::FPGAObject ( const cl_context &  context,
uint64_t  n_batch,
kernel_t  type = kernel_t::NONE,
bool  fence = false 
)
virtual intel::hexl::fpga::FPGAObject::~FPGAObject ( )
virtualdefault

Member Function Documentation

virtual void intel::hexl::fpga::FPGAObject::fill_in_data ( const std::vector< Object * > &  objs)
pure virtual
virtual void intel::hexl::fpga::FPGAObject::fill_out_data ( uint64_t *  results)
pure virtual
void intel::hexl::fpga::FPGAObject::recycle ( )

Member Data Documentation

uint64_t intel::hexl::fpga::FPGAObject::batch_size_
const cl_context& intel::hexl::fpga::FPGAObject::context_
bool intel::hexl::fpga::FPGAObject::fence_
std::atomic<int> intel::hexl::fpga::FPGAObject::g_tag_
static
std::vector<Object*> intel::hexl::fpga::FPGAObject::in_objs_
uint64_t intel::hexl::fpga::FPGAObject::n_batch_
int intel::hexl::fpga::FPGAObject::tag_
kernel_t intel::hexl::fpga::FPGAObject::type_

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