32 const size_t entry_count,
33 const size_t emitted_keys_count,
34 const size_t hash_table_size)
46 const size_t entry_count,
47 const size_t emitted_keys_count,
48 const size_t hash_table_size,
49 const size_t device_id)
58 gpu_hash_table_buff_ =
69 if (gpu_hash_table_buff_) {
70 data_mgr.
free(gpu_hash_table_buff_);
76 return gpu_hash_table_buff_ ? gpu_hash_table_buff_->getMemoryPtr() :
nullptr;
84 return gpu_hash_table_buff_ ? gpu_hash_table_buff_->reservedSize() : 0;
int8_t * getGpuBuffer() const override
class for a per-database catalog. also includes metadata for the current database and the current use...
size_t getEntryCount() const override
Data_Namespace::DataMgr & getDataMgr() const
HashType getLayout() const override
size_t getEmittedKeysCount() const override
const Catalog_Namespace::Catalog * catalog_
std::vector< int8_t > cpu_hash_table_buff_
size_t getHashTableBufferSize(const ExecutorDeviceType device_type) const override
This file contains the class specification and related data structures for Catalog.
An AbstractBuffer is a unit of data management for a data manager.
size_t emitted_keys_count_
BaselineHashTable(const Catalog_Namespace::Catalog *catalog, HashType layout, const size_t entry_count, const size_t emitted_keys_count, const size_t hash_table_size, const size_t device_id)
BaselineHashTable(const Catalog_Namespace::Catalog *catalog, HashType layout, const size_t entry_count, const size_t emitted_keys_count, const size_t hash_table_size)
static Data_Namespace::AbstractBuffer * allocGpuAbstractBuffer(Data_Namespace::DataMgr *data_mgr, const size_t num_bytes, const int device_id)
int8_t * getCpuBuffer() override
Allocate GPU memory using GpuBuffers via DataMgr.
void free(AbstractBuffer *buffer)