31 const size_t entry_count,
32 const size_t emitted_keys_count)
61 data_mgr_, entries *
sizeof(int32_t), device_id);
HashEntryInfo getHashEntryInfo() const
int8_t * getGpuBuffer() const override
int8_t * getCpuBuffer() override
HashType getLayout() const override
virtual int8_t * getMemoryPtr()=0
size_t cpu_hash_table_buff_size_
std::unique_ptr< int32_t[]> cpu_hash_table_buff_
size_t getHashTableBufferSize(const ExecutorDeviceType device_type) const override
virtual size_t reservedSize() const =0
Data_Namespace::AbstractBuffer * gpu_hash_table_buff_
size_t getEntryCount() const override
PerfectHashTable(Data_Namespace::DataMgr *data_mgr, const HashType layout, const ExecutorDeviceType device_type, const size_t entry_count, const size_t emitted_keys_count)
size_t getEmittedKeysCount() const override
void setColumnNumElems(size_t elem)
An AbstractBuffer is a unit of data management for a data manager.
size_t emitted_keys_count_
size_t gpuReservedSize() const
HashEntryInfo hash_entry_info_
static Data_Namespace::AbstractBuffer * allocGpuAbstractBuffer(Data_Namespace::DataMgr *data_mgr, const size_t num_bytes, const int device_id)
~PerfectHashTable() override
size_t getColumnNumElems() const
void setHashEntryInfo(HashEntryInfo &hash_entry_info)
Allocate GPU memory using GpuBuffers via DataMgr.
void free(AbstractBuffer *buffer)
void allocateGpuMemory(const size_t entries, const int device_id)
Data_Namespace::DataMgr * data_mgr_