Open3D (C++ API)  0.13.0
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Data Fields
open3d::core::DeviceHashmap Class Referenceabstract

#include <DeviceHashmap.h>

Inheritance diagram for open3d::core::DeviceHashmap:
open3d::core::SlabHashmap< Key, Hash > open3d::core::StdGPUHashmap< Key, Hash > open3d::core::TBBHashmap< Key, Hash >

Public Member Functions

 DeviceHashmap (int64_t init_capacity, int64_t dsize_key, int64_t dsize_value, const Device &device)
 Comprehensive constructor for the developer. More...
 
virtual ~DeviceHashmap ()
 
virtual void Rehash (int64_t buckets)=0
 
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. More...
 
virtual void Activate (const void *input_keys, addr_t *output_iterators, bool *output_masks, int64_t count)=0
 
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. 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 (addr_t *output_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
 
virtual int64_t GetBucketCount () const =0
 
virtual float LoadFactor () const =0
 
int64_t GetCapacity () const
 
int64_t GetKeyBytesize () const
 
int64_t GetValueBytesize () const
 
Device GetDevice () const
 
TensorGetKeyBuffer ()
 
TensorGetValueBuffer ()
 
virtual std::vector< int64_t > BucketSizes () const =0
 

Data Fields

int64_t capacity_
 
int64_t dsize_key_
 
int64_t dsize_value_
 
Device device_
 
std::shared_ptr< HashmapBufferbuffer_
 

Constructor & Destructor Documentation

◆ DeviceHashmap()

open3d::core::DeviceHashmap::DeviceHashmap ( int64_t  init_capacity,
int64_t  dsize_key,
int64_t  dsize_value,
const Device device 
)
inline

Comprehensive constructor for the developer.

◆ ~DeviceHashmap()

virtual open3d::core::DeviceHashmap::~DeviceHashmap ( )
inlinevirtual

Member Function Documentation

◆ Activate()

virtual void open3d::core::DeviceHashmap::Activate ( const void *  input_keys,
addr_t output_iterators,
bool *  output_masks,
int64_t  count 
)
pure virtual

Parallel activate contiguous arrays of keys without copying values. Specifically useful for large value elements (e.g., a tensor), where we can do in-place management after activation.

Implemented in open3d::core::StdGPUHashmap< Key, Hash >, open3d::core::TBBHashmap< Key, Hash >, and open3d::core::SlabHashmap< Key, Hash >.

◆ BucketSizes()

virtual std::vector<int64_t> open3d::core::DeviceHashmap::BucketSizes ( ) const
pure virtual

Return number of elems per bucket. High performance not required, so directly returns a vector.

Implemented in open3d::core::StdGPUHashmap< Key, Hash >, open3d::core::TBBHashmap< Key, Hash >, and open3d::core::SlabHashmap< Key, Hash >.

◆ Clear()

virtual void open3d::core::DeviceHashmap::Clear ( )
pure virtual

◆ Erase()

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

◆ Find()

virtual void open3d::core::DeviceHashmap::Find ( const void *  input_keys,
addr_t output_iterators,
bool *  output_masks,
int64_t  count 
)
pure virtual

◆ GetActiveIndices()

virtual int64_t open3d::core::DeviceHashmap::GetActiveIndices ( addr_t output_indices)
pure virtual

◆ GetBucketCount()

virtual int64_t open3d::core::DeviceHashmap::GetBucketCount ( ) const
pure virtual

◆ GetCapacity()

int64_t open3d::core::DeviceHashmap::GetCapacity ( ) const
inline

◆ GetDevice()

Device open3d::core::DeviceHashmap::GetDevice ( ) const
inline

◆ GetKeyBuffer()

Tensor& open3d::core::DeviceHashmap::GetKeyBuffer ( )
inline

◆ GetKeyBytesize()

int64_t open3d::core::DeviceHashmap::GetKeyBytesize ( ) const
inline

◆ GetValueBuffer()

Tensor& open3d::core::DeviceHashmap::GetValueBuffer ( )
inline

◆ GetValueBytesize()

int64_t open3d::core::DeviceHashmap::GetValueBytesize ( ) const
inline

◆ Insert()

virtual void open3d::core::DeviceHashmap::Insert ( const void *  input_keys,
const void *  input_values,
addr_t output_iterators,
bool *  output_masks,
int64_t  count 
)
pure virtual

Parallel insert contiguous arrays of keys and values.

Implemented in open3d::core::StdGPUHashmap< Key, Hash >, open3d::core::TBBHashmap< Key, Hash >, and open3d::core::SlabHashmap< Key, Hash >.

◆ LoadFactor()

virtual float open3d::core::DeviceHashmap::LoadFactor ( ) const
pure virtual

◆ Rehash()

virtual void open3d::core::DeviceHashmap::Rehash ( int64_t  buckets)
pure virtual

Rehash 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 open3d::core::StdGPUHashmap< Key, Hash >, open3d::core::TBBHashmap< Key, Hash >, and open3d::core::SlabHashmap< Key, Hash >.

◆ Size()

virtual int64_t open3d::core::DeviceHashmap::Size ( ) const
pure virtual

Field Documentation

◆ buffer_

std::shared_ptr<HashmapBuffer> open3d::core::DeviceHashmap::buffer_

◆ capacity_

int64_t open3d::core::DeviceHashmap::capacity_

◆ device_

Device open3d::core::DeviceHashmap::device_

◆ dsize_key_

int64_t open3d::core::DeviceHashmap::dsize_key_

◆ dsize_value_

int64_t open3d::core::DeviceHashmap::dsize_value_

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