52 std::vector<int64_t> value_dsizes_host =
54 std::vector<int64_t> value_blocks_per_element_host =
56 n_values_ = value_blocks_per_element_host.size();
64 value_dsizes_host.data(),
67 value_blocks_per_element_host.data(),
77 std::vector<uint8_t *> value_ptrs(
n_values_);
79 value_ptrs[i] = value_buffers[i].GetDataPtr<uint8_t>();
80 cudaMemset(value_ptrs[i], 0,
capacity_ * value_dsizes_host[i]);
82 values_ =
static_cast<uint8_t **
>(
104 heap_[index - 1] = ptr;
#define OPEN3D_CUDA_CHECK(err)
Definition: CUDAUtils.h:66
Definition: CUDAHashBackendBufferAccessor.h:43
int64_t * value_blocks_per_element_
Definition: CUDAHashBackendBufferAccessor.h:127
__host__ void Setup(HashBackendBuffer &hashmap_buffer)
Definition: CUDAHashBackendBufferAccessor.h:45
int64_t * value_dsizes_
Definition: CUDAHashBackendBufferAccessor.h:126
uint8_t ** values_
Definition: CUDAHashBackendBufferAccessor.h:122
__device__ buf_index_t DeviceAllocate()
Definition: CUDAHashBackendBufferAccessor.h:98
int * heap_top_
Definition: CUDAHashBackendBufferAccessor.h:116
__device__ void DeviceFree(buf_index_t ptr)
Definition: CUDAHashBackendBufferAccessor.h:102
int64_t capacity_
Definition: CUDAHashBackendBufferAccessor.h:129
__host__ void Shutdown(const Device &device)
Definition: CUDAHashBackendBufferAccessor.h:92
uint8_t * keys_
Definition: CUDAHashBackendBufferAccessor.h:118
size_t n_values_
Definition: CUDAHashBackendBufferAccessor.h:121
__device__ void * GetKeyPtr(buf_index_t ptr)
Definition: CUDAHashBackendBufferAccessor.h:107
__device__ void * GetValuePtr(buf_index_t ptr, int value_idx=0)
Definition: CUDAHashBackendBufferAccessor.h:110
buf_index_t * heap_
Definition: CUDAHashBackendBufferAccessor.h:115
int64_t key_dsize_
Definition: CUDAHashBackendBufferAccessor.h:119
int64_t common_block_size_
Definition: CUDAHashBackendBufferAccessor.h:124
Definition: HashBackendBuffer.h:65
int64_t GetKeyDsize() const
Return key's data size in bytes.
Definition: HashBackendBuffer.cpp:96
Device GetDevice() const
Return device of the buffer.
Definition: HashBackendBuffer.cpp:92
Tensor GetIndexHeap() const
Return the index heap tensor.
Definition: HashBackendBuffer.cpp:116
int64_t GetCapacity() const
Return capacity of the buffer.
Definition: HashBackendBuffer.cpp:94
HeapTop & GetHeapTop()
Definition: HashBackendBuffer.cpp:118
Tensor GetKeyBuffer() const
Return the key buffer tensor.
Definition: HashBackendBuffer.cpp:129
std::vector< int64_t > GetValueDsizes() const
Return value's data sizes in bytes.
Definition: HashBackendBuffer.cpp:100
int64_t GetCommonBlockSize() const
Get the common block size divisor of all values types.
Definition: HashBackendBuffer.cpp:108
std::vector< Tensor > GetValueBuffers() const
Return the value buffer tensors.
Definition: HashBackendBuffer.cpp:131
std::vector< int64_t > GetValueBlocksPerElement() const
Return value's data sizes in the unit of common block size divisor.
Definition: HashBackendBuffer.cpp:112
static void MemcpyFromHost(void *dst_ptr, const Device &dst_device, const void *host_ptr, size_t num_bytes)
Same as Memcpy, but with host (CPU:0) as default src_device.
Definition: MemoryManager.cpp:86
static void * Malloc(size_t byte_size, const Device &device)
Definition: MemoryManager.cpp:41
static void Free(void *ptr, const Device &device)
Frees previously allocated memory at address ptr on device device.
Definition: MemoryManager.cpp:47
T * GetDataPtr()
Definition: Tensor.h:1108
void Synchronize()
Definition: CUDAUtils.cpp:78
uint32_t buf_index_t
Definition: HashBackendBuffer.h:63
Definition: PinholeCameraIntrinsic.cpp:35
Tensor cuda
Definition: HashBackendBuffer.h:68