Intel HEXL for FPGA
Intel Homomorphic Encryption FPGA Acceleration Library, accelerating the modular arithmetic operations used in homomorphic encryption.
 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_NTT

Public Member Functions

 FPGAObject (const cl_context &context, uint64_t n_batch)
 
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_
 
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 
)
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

const cl_context& intel::hexl::fpga::FPGAObject::context_
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_

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