58 virtual void Rehash(int64_t buckets) = 0;
61 virtual void Insert(
const void* input_keys,
62 const void* input_values,
70 virtual void Activate(
const void* input_keys,
76 virtual void Find(
const void* input_keys,
82 virtual void Erase(
const void* input_keys,
90 virtual void Clear() = 0;
92 virtual int64_t
Size()
const = 0;
106 virtual std::vector<int64_t>
BucketSizes()
const = 0;
123 int64_t init_capacity,
124 const Dtype& dtype_key,
125 const Dtype& dtype_value,
132 int64_t init_capacity,
133 const Dtype& dtype_key,
134 const Dtype& dtype_value,
141 int64_t init_capacity,
142 const Dtype& dtype_key,
143 const Dtype& dtype_value,
virtual float LoadFactor() const =0
HashmapBackend
Definition: Hashmap.h:38
virtual int64_t GetBucketCount() const =0
Definition: SizeVector.h:102
std::shared_ptr< DeviceHashmap > CreateDeviceHashmap(int64_t init_capacity, const Dtype &dtype_key, const Dtype &dtype_value, const SizeVector &element_shape_key, const SizeVector &element_shape_value, const Device &device, const HashmapBackend &backend)
Definition: DeviceHashmap.cpp:36
Definition: DeviceHashmap.h:39
Device GetDevice() const
Definition: DeviceHashmap.h:99
virtual int64_t GetActiveIndices(addr_t *output_indices)=0
Parallel collect all iterators in the hash table.
virtual ~DeviceHashmap()
Definition: DeviceHashmap.h:50
DeviceHashmap(int64_t init_capacity, int64_t dsize_key, int64_t dsize_value, const Device &device)
Comprehensive constructor for the developer.
Definition: DeviceHashmap.h:42
int64_t GetValueBytesize() const
Definition: DeviceHashmap.h:98
std::shared_ptr< DeviceHashmap > CreateCPUHashmap(int64_t init_capacity, const Dtype &dtype_key, const Dtype &dtype_value, const SizeVector &element_shape_key, const SizeVector &element_shape_value, const Device &device, const HashmapBackend &backend)
Non-templated factory.
Definition: CreateCPUHashmap.cpp:35
Device device_
Definition: DeviceHashmap.h:113
std::shared_ptr< DeviceHashmap > CreateCUDAHashmap(int64_t init_capacity, const Dtype &dtype_key, const Dtype &dtype_value, const SizeVector &element_shape_key, const SizeVector &element_shape_value, const Device &device, const HashmapBackend &backend)
virtual void Insert(const void *input_keys, const void *input_values, addr_t *output_iterators, bool *output_masks, int64_t count)=0
Parallel insert contiguous arrays of keys and values.
int64_t GetKeyBytesize() const
Definition: DeviceHashmap.h:97
int count
Definition: FilePCD.cpp:61
virtual void Find(const void *input_keys, addr_t *output_iterators, bool *output_masks, int64_t count)=0
Parallel find a contiguous array of keys.
Definition: PinholeCameraIntrinsic.cpp:35
virtual int64_t Size() const =0
int64_t capacity_
Definition: DeviceHashmap.h:109
virtual void Erase(const void *input_keys, bool *output_masks, int64_t count)=0
Parallel erase a contiguous array of keys.
Tensor & GetKeyBuffer()
Definition: DeviceHashmap.h:101
virtual void Activate(const void *input_keys, addr_t *output_iterators, bool *output_masks, int64_t count)=0
virtual void Rehash(int64_t buckets)=0
uint32_t addr_t
Definition: HashmapBuffer.h:58
int64_t dsize_key_
Definition: DeviceHashmap.h:110
int64_t dsize_value_
Definition: DeviceHashmap.h:111
virtual std::vector< int64_t > BucketSizes() const =0
int64_t GetCapacity() const
Definition: DeviceHashmap.h:96
Tensor & GetValueBuffer()
Definition: DeviceHashmap.h:102
virtual void Clear()=0
Clear stored map without reallocating memory.
std::shared_ptr< HashmapBuffer > buffer_
Definition: DeviceHashmap.h:115