ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::core::MemoryManager Class Reference

#include <MemoryManager.h>

Static Public Member Functions

static void * Malloc (size_t byte_size, const Device &device)
 
static void Free (void *ptr, const Device &device)
 Frees previously allocated memory at address ptr on device device. More...
 
static void Memcpy (void *dst_ptr, const Device &dst_device, const void *src_ptr, const Device &src_device, size_t num_bytes)
 
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. More...
 
static void MemcpyToHost (void *host_ptr, const void *src_ptr, const Device &src_device, size_t num_bytes)
 Same as Memcpy, but with host (CPU:0) as default dst_device. More...
 

Static Protected Member Functions

static std::shared_ptr< MemoryManagerDeviceGetMemoryManagerDevice (const Device &device)
 Internally dispatches the appropriate MemoryManagerDevice instance. More...
 

Detailed Description

Top-level memory interface. Calls to any of the member functions will automatically dispatch the appropriate MemoryManagerDevice instance based on the provided device which is used to execute the requested functionality.

The memory managers are dispatched as follows:

DeviceType = CPU : MemoryManagerCPU DeviceType = CUDA : ENABLE_CACHED_CUDA_MANAGER = ON : MemoryManagerCached w/ MemoryManagerCUDA Otherwise : MemoryManagerCUDA

Definition at line 34 of file MemoryManager.h.

Member Function Documentation

◆ Free()

◆ GetMemoryManagerDevice()

std::shared_ptr< MemoryManagerDevice > cloudViewer::core::MemoryManager::GetMemoryManagerDevice ( const Device device)
staticprotected

◆ Malloc()

◆ Memcpy()

void cloudViewer::core::MemoryManager::Memcpy ( void *  dst_ptr,
const Device dst_device,
const void *  src_ptr,
const Device src_device,
size_t  num_bytes 
)
static

Copies num_bytes bytes of memory at address src_ptr on device src_device to address dst_ptr on device dst_device.

Definition at line 36 of file MemoryManager.cpp.

References GetMemoryManagerDevice(), cloudViewer::core::Device::IsCPU(), cloudViewer::core::Device::IsCUDA(), cloudViewer::core::Device::IsSYCL(), LogError, and cloudViewer::core::Device::ToString().

Referenced by cloudViewer::core::kernel::CopyCPU(), cloudViewer::core::kernel::CopySYCL(), MemcpyFromHost(), and MemcpyToHost().

◆ MemcpyFromHost()

void cloudViewer::core::MemoryManager::MemcpyFromHost ( void *  dst_ptr,
const Device dst_device,
const void *  host_ptr,
size_t  num_bytes 
)
static

◆ MemcpyToHost()

void cloudViewer::core::MemoryManager::MemcpyToHost ( void *  host_ptr,
const void *  src_ptr,
const Device src_device,
size_t  num_bytes 
)
static

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