ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::core::DeviceHashBackend Class Referenceabstract

#include <DeviceHashBackend.h>

Inheritance diagram for cloudViewer::core::DeviceHashBackend:
Collaboration diagram for cloudViewer::core::DeviceHashBackend:

Public Member Functions

 DeviceHashBackend (int64_t init_capacity, int64_t key_dsize, const std::vector< int64_t > &value_dsizes, const Device &device)
 
virtual ~DeviceHashBackend ()
 
virtual void Reserve (int64_t capacity)=0
 
virtual void Insert (const void *input_keys, const std::vector< const void * > &input_values, buf_index_t *output_buf_indices, bool *output_masks, int64_t count)=0
 Parallel insert contiguous arrays of keys and values. More...
 
virtual void Find (const void *input_keys, buf_index_t *output_buf_indices, bool *output_masks, int64_t count)=0
 Parallel find a contiguous array of keys. More...
 
virtual void Erase (const void *input_keys, bool *output_masks, int64_t count)=0
 Parallel erase a contiguous array of keys. More...
 
virtual int64_t GetActiveIndices (buf_index_t *output_buf_indices)=0
 Parallel collect all iterators in the hash table. More...
 
virtual void Clear ()=0
 Clear stored map without reallocating memory. More...
 
virtual int64_t Size () const =0
 Get the size (number of valid entries) of the hash map. More...
 
virtual int64_t GetBucketCount () const =0
 Get the number of buckets of the hash map. More...
 
virtual float LoadFactor () const =0
 Get the current load factor, defined as size / bucket count. More...
 
int64_t GetCapacity () const
 Get the maximum capacity of the hash map. More...
 
Device GetDevice () const
 Get the current device. More...
 
virtual std::vector< int64_t > BucketSizes () const =0
 Get the number of entries per bucket. More...
 
Tensor GetKeyBuffer ()
 Get the key buffer that stores actual keys. More...
 
std::vector< TensorGetValueBuffers ()
 Get the value buffers that store actual array of values. More...
 
Tensor GetValueBuffer (size_t i=0)
 Get the i-th value buffer that store an actual value array. More...
 
virtual void Allocate (int64_t capacity)=0
 
virtual void Free ()=0
 

Public Attributes

int64_t capacity_
 
int64_t key_dsize_
 
std::vector< int64_t > value_dsizes_
 
Device device_
 
std::shared_ptr< HashBackendBufferbuffer_
 

Detailed Description

Definition at line 20 of file DeviceHashBackend.h.

Constructor & Destructor Documentation

◆ DeviceHashBackend()

cloudViewer::core::DeviceHashBackend::DeviceHashBackend ( int64_t  init_capacity,
int64_t  key_dsize,
const std::vector< int64_t > &  value_dsizes,
const Device device 
)
inline

Definition at line 22 of file DeviceHashBackend.h.

◆ ~DeviceHashBackend()

virtual cloudViewer::core::DeviceHashBackend::~DeviceHashBackend ( )
inlinevirtual

Definition at line 30 of file DeviceHashBackend.h.

Member Function Documentation

◆ Allocate()

virtual void cloudViewer::core::DeviceHashBackend::Allocate ( int64_t  capacity)
pure virtual

◆ BucketSizes()

virtual std::vector<int64_t> cloudViewer::core::DeviceHashBackend::BucketSizes ( ) const
pure virtual

◆ Clear()

virtual void cloudViewer::core::DeviceHashBackend::Clear ( )
pure virtual

◆ Erase()

virtual void cloudViewer::core::DeviceHashBackend::Erase ( const void *  input_keys,
bool *  output_masks,
int64_t  count 
)
pure virtual

◆ Find()

virtual void cloudViewer::core::DeviceHashBackend::Find ( const void *  input_keys,
buf_index_t output_buf_indices,
bool *  output_masks,
int64_t  count 
)
pure virtual

◆ Free()

◆ GetActiveIndices()

virtual int64_t cloudViewer::core::DeviceHashBackend::GetActiveIndices ( buf_index_t output_buf_indices)
pure virtual

◆ GetBucketCount()

virtual int64_t cloudViewer::core::DeviceHashBackend::GetBucketCount ( ) const
pure virtual

◆ GetCapacity()

int64_t cloudViewer::core::DeviceHashBackend::GetCapacity ( ) const
inline

Get the maximum capacity of the hash map.

Definition at line 74 of file DeviceHashBackend.h.

References capacity_.

◆ GetDevice()

Device cloudViewer::core::DeviceHashBackend::GetDevice ( ) const
inline

Get the current device.

Definition at line 77 of file DeviceHashBackend.h.

References device_.

◆ GetKeyBuffer()

Tensor cloudViewer::core::DeviceHashBackend::GetKeyBuffer ( )
inline

Get the key buffer that stores actual keys.

Definition at line 83 of file DeviceHashBackend.h.

References buffer_.

◆ GetValueBuffer()

Tensor cloudViewer::core::DeviceHashBackend::GetValueBuffer ( size_t  i = 0)
inline

Get the i-th value buffer that store an actual value array.

Definition at line 89 of file DeviceHashBackend.h.

References buffer_.

◆ GetValueBuffers()

std::vector<Tensor> cloudViewer::core::DeviceHashBackend::GetValueBuffers ( )
inline

Get the value buffers that store actual array of values.

Definition at line 86 of file DeviceHashBackend.h.

References buffer_.

◆ Insert()

virtual void cloudViewer::core::DeviceHashBackend::Insert ( const void *  input_keys,
const std::vector< const void * > &  input_values,
buf_index_t output_buf_indices,
bool *  output_masks,
int64_t  count 
)
pure virtual

◆ LoadFactor()

virtual float cloudViewer::core::DeviceHashBackend::LoadFactor ( ) const
pure virtual

◆ Reserve()

virtual void cloudViewer::core::DeviceHashBackend::Reserve ( int64_t  capacity)
pure virtual

Reserve expects a lot of extra memory space at runtime, since it consists of 1) dumping all key value pairs to a buffer 2) creating a new hash table 3) parallel inserting dumped key value pairs 4) deallocating old hash table

Implemented in cloudViewer::core::StdGPUHashBackend< Key, Hash, Eq >, cloudViewer::core::SlabHashBackend< Key, Hash, Eq >, and cloudViewer::core::TBBHashBackend< Key, Hash, Eq >.

◆ Size()

virtual int64_t cloudViewer::core::DeviceHashBackend::Size ( ) const
pure virtual

Member Data Documentation

◆ buffer_

std::shared_ptr<HashBackendBuffer> cloudViewer::core::DeviceHashBackend::buffer_

Definition at line 102 of file DeviceHashBackend.h.

Referenced by GetKeyBuffer(), GetValueBuffer(), and GetValueBuffers().

◆ capacity_

int64_t cloudViewer::core::DeviceHashBackend::capacity_

Definition at line 95 of file DeviceHashBackend.h.

Referenced by GetCapacity().

◆ device_

◆ key_dsize_

int64_t cloudViewer::core::DeviceHashBackend::key_dsize_

Definition at line 97 of file DeviceHashBackend.h.

◆ value_dsizes_

std::vector<int64_t> cloudViewer::core::DeviceHashBackend::value_dsizes_

Definition at line 98 of file DeviceHashBackend.h.


The documentation for this class was generated from the following file: