|
Open3D (C++ API)
0.17.0
|
#include <SlabHashBackendImpl.h>
Public Member Functions | |
| SlabHashBackendImpl () | |
| __host__ void | Setup (int64_t init_buckets, const SlabNodeManagerImpl &node_mgr_impl, const CUDAHashBackendBufferAccessor &buffer_accessor) |
| __device__ bool | Insert (bool lane_active, uint32_t lane_id, uint32_t bucket_id, const Key &key, buf_index_t buf_index) |
| Warp-insert a pre-allocated buf_index at key. More... | |
| __device__ Pair< buf_index_t, bool > | Find (bool lane_active, uint32_t lane_id, uint32_t bucket_id, const Key &key) |
| Warp-find a buf_index and its mask at key. More... | |
| __device__ Pair< buf_index_t, bool > | Erase (bool lane_active, uint32_t lane_id, uint32_t bucket_id, const Key &key) |
| Warp-erase an entry at key. More... | |
| __device__ void | WarpSyncKey (const Key &key, uint32_t lane_id, Key &ret_key) |
| Warp-synchronize a key in a slab. More... | |
| __device__ int32_t | WarpFindKey (const Key &src_key, uint32_t lane_id, uint32_t slab_entry) |
| Warp-find a key in a slab. More... | |
| __device__ int32_t | WarpFindEmpty (uint32_t slab_entry) |
| Warp-find the first empty slot in a slab. More... | |
| __device__ int64_t | ComputeBucket (const Key &key) const |
| __device__ uint32_t | AllocateSlab (uint32_t lane_id) |
| __device__ void | FreeSlab (uint32_t slab_ptr) |
| __device__ uint32_t * | SlabEntryPtr (uint32_t bucket_id, uint32_t lane_id, uint32_t slab_ptr) |
| __device__ uint32_t * | SlabEntryPtrFromNodes (uint32_t slab_ptr, uint32_t lane_id) |
| __device__ uint32_t * | SlabEntryPtrFromHead (uint32_t bucket_id, uint32_t lane_id) |
Data Fields | |
| Hash | hash_fn_ |
| Eq | eq_fn_ |
| int64_t | bucket_count_ |
| Slab * | bucket_list_head_ |
| SlabNodeManagerImpl | node_mgr_impl_ |
| CUDAHashBackendBufferAccessor | buffer_accessor_ |
| int | key_size_in_int_ = sizeof(Key) / sizeof(int) |
| open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::SlabHashBackendImpl |
| __device__ uint32_t open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::AllocateSlab | ( | uint32_t | lane_id | ) |
| __device__ int64_t open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::ComputeBucket | ( | const Key & | key | ) | const |
| __device__ Pair< buf_index_t, bool > open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::Erase | ( | bool | lane_active, |
| uint32_t | lane_id, | ||
| uint32_t | bucket_id, | ||
| const Key & | key | ||
| ) |
Warp-erase an entry at key.
| __device__ Pair< buf_index_t, bool > open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::Find | ( | bool | lane_active, |
| uint32_t | lane_id, | ||
| uint32_t | bucket_id, | ||
| const Key & | key | ||
| ) |
Warp-find a buf_index and its mask at key.
| __device__ __forceinline__ void open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::FreeSlab | ( | uint32_t | slab_ptr | ) |
| __device__ bool open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::Insert | ( | bool | lane_active, |
| uint32_t | lane_id, | ||
| uint32_t | bucket_id, | ||
| const Key & | key, | ||
| buf_index_t | buf_index | ||
| ) |
Warp-insert a pre-allocated buf_index at key.
| void open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::Setup | ( | int64_t | init_buckets, |
| const SlabNodeManagerImpl & | node_mgr_impl, | ||
| const CUDAHashBackendBufferAccessor & | buffer_accessor | ||
| ) |
|
inline |
|
inline |
|
inline |
| __device__ int32_t open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::WarpFindEmpty | ( | uint32_t | slab_entry | ) |
Warp-find the first empty slot in a slab.
| __device__ int32_t open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::WarpFindKey | ( | const Key & | src_key, |
| uint32_t | lane_id, | ||
| uint32_t | slab_entry | ||
| ) |
Warp-find a key in a slab.
| __device__ void open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::WarpSyncKey | ( | const Key & | key, |
| uint32_t | lane_id, | ||
| Key & | ret_key | ||
| ) |
Warp-synchronize a key in a slab.
| int64_t open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::bucket_count_ |
| Slab* open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::bucket_list_head_ |
| CUDAHashBackendBufferAccessor open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::buffer_accessor_ |
| Eq open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::eq_fn_ |
| Hash open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::hash_fn_ |
| int open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::key_size_in_int_ = sizeof(Key) / sizeof(int) |
| SlabNodeManagerImpl open3d::core::SlabHashBackendImpl< Key, Hash, Eq >::node_mgr_impl_ |