31 const size_t entry_count,
32 const size_t emitted_keys_count,
33 const bool for_window_framing =
false)
38 std::string device_str =
"GPU";
47 VLOG(1) <<
"Initialize a " << device_str <<
" perfect hash table for join type "
48 <<
::toString(layout) <<
" # hash entries: " << entry_count
49 <<
", # entries stored in the payload buffer: " << emitted_keys_count
69 data_mgr_, entries *
sizeof(int32_t), device_id);
BucketizedHashEntryInfo 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
size_t getEmittedKeysCount() const override
void setColumnNumElems(size_t elem)
An AbstractBuffer is a unit of data management for a data manager.
void setHashEntryInfo(BucketizedHashEntryInfo &hash_entry_info)
size_t emitted_keys_count_
PerfectHashTable(Data_Namespace::DataMgr *data_mgr, const HashType layout, const ExecutorDeviceType device_type, const size_t entry_count, const size_t emitted_keys_count, const bool for_window_framing=false)
size_t gpuReservedSize() const
static std::string toString(const std::string &type, const std::string &layout_type, size_t key_component_count, size_t key_component_width, size_t entry_count, const int8_t *ptr1, const int8_t *ptr2, const int8_t *ptr3, const int8_t *ptr4, size_t buffer_size, bool raw=false)
Decode hash table into a human-readable string.
BucketizedHashEntryInfo 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
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_