SENSEI
A frame work for generic in situ analytics
sensei::MemoryUtils Namespace Reference

Functions for dealing with memory access across heterogeneous architectures. More...

Functions

int CudaAccessible (const void *ptr)
 return true if the pointer is accessible by code running on a CUDA GPU More...
 
int HostAccessible (const void *ptr)
 return true if the pointer is accessible by code running on the CPU More...
 
void FreeCudaPtr (void *ptr)
 callback that can free memory managed by CUDA More...
 
void FreeHostPtr (void *ptr)
 callback that can free memory managed by malloc More...
 
void DontFreePtr (void *ptr)
 A callback that does not free the pointer. More...
 
MakedCudaAccessible

returns a pointer to data that is accessible from CUDA kernels.

If the data is already accessible, this call is a noop. On the other hand if the data is not accessible it will be moved. The accessible data is returned as a shared pointer so that in the case data needed to be moved, the buffers on the GPU will automatically be released.

std::shared_ptr< void > MakeCudaAccessible_ (void *ptr, size_t nBytes)
 
template<typename data_t >
std::shared_ptr< data_t > MakeCudaAccessible (data_t *ptr, size_t nVals)
 
MakeHostAccessible

returns a pointer to data that is accessible from CPU codes.

If the data is already accessible, this call is a noop. On the other hand if the data is not accessible it will be moved. The accessible data is returned as a shared pointer so that in the case data needed to be moved, the buffers on the CPU will automatically be released.

std::shared_ptr< void > MakeHostAccessible_ (void *ptr, size_t nBytes)
 
template<typename data_t >
std::shared_ptr< data_t > MakeHostAccessible (data_t *ptr, size_t nVals)
 

Detailed Description

Functions for dealing with memory access across heterogeneous architectures.

Function Documentation

◆ CudaAccessible()

int sensei::MemoryUtils::CudaAccessible ( const void *  ptr)

return true if the pointer is accessible by code running on a CUDA GPU

◆ DontFreePtr()

void sensei::MemoryUtils::DontFreePtr ( void *  ptr)

A callback that does not free the pointer.

◆ FreeCudaPtr()

void sensei::MemoryUtils::FreeCudaPtr ( void *  ptr)

callback that can free memory managed by CUDA

◆ FreeHostPtr()

void sensei::MemoryUtils::FreeHostPtr ( void *  ptr)

callback that can free memory managed by malloc

◆ HostAccessible()

int sensei::MemoryUtils::HostAccessible ( const void *  ptr)

return true if the pointer is accessible by code running on the CPU