OmniSciDB
a5dc49c757
|
#include <PerfectHashTable.h>
Public Member Functions | |
PerfectHashTable (const ExecutorDeviceType device_type, PerfectHashTableEntryInfo hash_table_entry_info, Data_Namespace::DataMgr *data_mgr=nullptr, const int device_id=-1) | |
~PerfectHashTable () override | |
void | allocateGpuMemory (const size_t num_entries) |
size_t | getHashTableBufferSize (const ExecutorDeviceType device_type) const override |
HashType | getLayout () const override |
int8_t * | getCpuBuffer () override |
int8_t * | getGpuBuffer () const override |
size_t | getEntryCount () const override |
size_t | getEmittedKeysCount () const override |
size_t | getRowIdSize () const override |
void | setHashEntryInfo (BucketizedHashEntryInfo &hash_entry_info) |
void | setColumnNumElems (size_t elem) |
BucketizedHashEntryInfo | getHashEntryInfo () const |
size_t | getColumnNumElems () const |
PerfectHashTableEntryInfo | getHashTableEntryInfo () const |
void | printInitLog (ExecutorDeviceType device_type) |
Public Member Functions inherited from HashTable | |
virtual | ~HashTable () |
Private Attributes | |
Data_Namespace::AbstractBuffer * | gpu_hash_table_buff_ {nullptr} |
std::unique_ptr< int32_t[]> | cpu_hash_table_buff_ {nullptr} |
PerfectHashTableEntryInfo | hash_table_entry_info_ |
BucketizedHashEntryInfo | hash_entry_info_ |
size_t | column_num_elems_ |
Data_Namespace::DataMgr * | data_mgr_ |
int | device_id_ |
Additional Inherited Members | |
Static Public Member Functions inherited from HashTable | |
static DecodedJoinHashBufferSet | toSet (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) |
Decode hash table into a std::set for easy inspection and validation. More... | |
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. More... | |
Definition at line 50 of file PerfectHashTable.h.
|
inline |
Definition at line 53 of file PerfectHashTable.h.
References PerfectHashTableEntryInfo::computeTotalNumSlots(), CPU, cpu_hash_table_buff_, and printInitLog().
|
inlineoverride |
Definition at line 67 of file PerfectHashTable.h.
References CHECK, data_mgr_, Data_Namespace::DataMgr::free(), and gpu_hash_table_buff_.
|
inline |
Definition at line 76 of file PerfectHashTable.h.
References CudaAllocator::allocGpuAbstractBuffer(), CHECK, CHECK_GE, cpu_hash_table_buff_, data_mgr_, device_id_, HashTableEntryInfo::getRowIdSizeInBytes(), GPU, gpu_hash_table_buff_, hash_table_entry_info_, printInitLog(), and VLOG.
|
inline |
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 103 of file PerfectHashTable.h.
References cpu_hash_table_buff_.
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 115 of file PerfectHashTable.h.
References HashTableEntryInfo::getNumKeys(), and hash_table_entry_info_.
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 111 of file PerfectHashTable.h.
References HashTableEntryInfo::getNumHashEntries(), and hash_table_entry_info_.
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 107 of file PerfectHashTable.h.
References Data_Namespace::AbstractBuffer::getMemoryPtr(), and gpu_hash_table_buff_.
|
inline |
Definition at line 131 of file PerfectHashTable.h.
References hash_entry_info_.
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 91 of file PerfectHashTable.h.
References PerfectHashTableEntryInfo::computeHashTableSize(), CPU, gpu_hash_table_buff_, hash_table_entry_info_, and Data_Namespace::AbstractBuffer::reservedSize().
|
inline |
Definition at line 139 of file PerfectHashTable.h.
References hash_table_entry_info_.
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 99 of file PerfectHashTable.h.
References HashTableEntryInfo::getHashTableLayout(), and hash_table_entry_info_.
|
inlineoverridevirtual |
Implements HashTable.
Definition at line 119 of file PerfectHashTable.h.
References HashTableEntryInfo::getRowIdSizeInBytes(), and hash_table_entry_info_.
|
inline |
Definition at line 143 of file PerfectHashTable.h.
References PerfectHashTableEntryInfo::computeHashTableSize(), CPU, device_id_, HashTableEntryInfo::getHashTableLayout(), HashTableEntryInfo::getNumHashEntries(), HashTableEntryInfo::getNumKeys(), GPU, hash_table_entry_info_, OneToOne, and VLOG.
Referenced by allocateGpuMemory(), and PerfectHashTable().
|
inline |
|
inline |
Definition at line 123 of file PerfectHashTable.h.
References hash_entry_info_.
|
private |
Definition at line 167 of file PerfectHashTable.h.
Referenced by getColumnNumElems(), and setColumnNumElems().
|
private |
Definition at line 164 of file PerfectHashTable.h.
Referenced by allocateGpuMemory(), getCpuBuffer(), and PerfectHashTable().
|
private |
Definition at line 168 of file PerfectHashTable.h.
Referenced by allocateGpuMemory(), and ~PerfectHashTable().
|
private |
Definition at line 169 of file PerfectHashTable.h.
Referenced by allocateGpuMemory(), and printInitLog().
|
private |
Definition at line 163 of file PerfectHashTable.h.
Referenced by allocateGpuMemory(), getGpuBuffer(), getHashTableBufferSize(), and ~PerfectHashTable().
|
private |
Definition at line 166 of file PerfectHashTable.h.
Referenced by getHashEntryInfo(), and setHashEntryInfo().
|
private |
Definition at line 165 of file PerfectHashTable.h.
Referenced by allocateGpuMemory(), getEmittedKeysCount(), getEntryCount(), getHashTableBufferSize(), getHashTableEntryInfo(), getLayout(), getRowIdSize(), and printInitLog().