Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooBatchCompute::CudaInterface Namespace Reference

Classes

class  Array
 A templated class for managing an array of data using a specified memory type. More...
 
class  CudaStream
 

Typedefs

template<class T >
using DeviceArray = Array<T, DeviceMemory>
 An array of specific type that is allocated on the device with cudaMalloc and freed with cudaFree.
 
template<class T >
using PinnedHostArray = Array<T, PinnedHostMemory>
 A pinned array of specific type that allocated on the host with cudaMallocHost and freed with cudaFreeHost.
 

Functions

template<class T >
void copyDeviceToDevice (const T *src, T *dest, std::size_t n, CudaStream *stream=nullptr)
 Copies data from the CUDA device to the CUDA device.
 
template<class T >
void copyDeviceToHost (const T *src, T *dest, std::size_t n, CudaStream *stream=nullptr)
 Copies data from the CUDA device to the host.
 
template<class T >
void copyHostToDevice (const T *src, T *dest, std::size_t n, CudaStream *stream=nullptr)
 Copies data from the host to the CUDA device.
 

Typedef Documentation

◆ DeviceArray

An array of specific type that is allocated on the device with cudaMalloc and freed with cudaFree.

Definition at line 211 of file CudaInterface.h.

◆ PinnedHostArray

A pinned array of specific type that allocated on the host with cudaMallocHost and freed with cudaFreeHost.

The memory is "pinned", i.e. page-locked and accessible to the device for fast copying.

See also
The documentation of cudaMallocHost on developer.download.nvidia.com.

Definition at line 220 of file CudaInterface.h.

Function Documentation

◆ copyDeviceToDevice()

template<class T >
void RooBatchCompute::CudaInterface::copyDeviceToDevice ( const T * src,
T * dest,
std::size_t n,
CudaStream * stream = nullptr )

Copies data from the CUDA device to the CUDA device.

Parameters
[in]srcPointer to the source memory on the device.
[in]destPointer to the destination memory on the device.
[in]nNumber of bytes to copy.
[in]streamCudaStream for asynchronous memory transfer (optional).

Definition at line 122 of file CudaInterface.h.

◆ copyDeviceToHost()

template<class T >
void RooBatchCompute::CudaInterface::copyDeviceToHost ( const T * src,
T * dest,
std::size_t n,
CudaStream * stream = nullptr )

Copies data from the CUDA device to the host.

Parameters
[in]srcPointer to the source memory on the device.
[in]destPointer to the destination memory on the host.
[in]nNumber of bytes to copy.
[in]streamCudaStream for asynchronous memory transfer (optional).

Definition at line 108 of file CudaInterface.h.

◆ copyHostToDevice()

template<class T >
void RooBatchCompute::CudaInterface::copyHostToDevice ( const T * src,
T * dest,
std::size_t n,
CudaStream * stream = nullptr )

Copies data from the host to the CUDA device.

Parameters
[in]srcPointer to the source memory on the host.
[in]destPointer to the destination memory on the device.
[in]nNumber of bytes to copy.
[in]streamCudaStream for asynchronous memory transfer (optional).

Definition at line 94 of file CudaInterface.h.