Public Member Functions | Private Attributes

LibGeoDecomp::CUDAArray< ELEMENT_TYPE > Class Template Reference

Handles memory allocation and data transfer (intra and inter GPU) on CUDA-capable NVIDIA GPUs. More...

#include <cudaarray.h>

Collaboration diagram for LibGeoDecomp::CUDAArray< ELEMENT_TYPE >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CUDAArray (std::size_t size=0)
 CUDAArray (const CUDAArray &array)
 CUDAArray (const ELEMENT_TYPE *hostData, std::size_t size)
 CUDAArray (const std::vector< ELEMENT_TYPE > &hostVector)
 ~CUDAArray ()
void operator= (const CUDAArray &array)
void load (const ELEMENT_TYPE *hostData)
void save (ELEMENT_TYPE *hostData) const
std::size_t byteSize () const
__host__ __device__ ELEMENT_TYPE * data ()
__host__ __device__ const
ELEMENT_TYPE * 
data () const

Private Attributes

std::size_t size
ELEMENT_TYPE * dataPointer

Detailed Description

template<typename ELEMENT_TYPE>
class LibGeoDecomp::CUDAArray< ELEMENT_TYPE >

Handles memory allocation and data transfer (intra and inter GPU) on CUDA-capable NVIDIA GPUs.


Constructor & Destructor Documentation

template<typename ELEMENT_TYPE>
LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::CUDAArray ( std::size_t  size = 0  )  [inline]
template<typename ELEMENT_TYPE>
LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::CUDAArray ( const CUDAArray< ELEMENT_TYPE > &  array  )  [inline]
template<typename ELEMENT_TYPE>
LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::CUDAArray ( const ELEMENT_TYPE *  hostData,
std::size_t  size 
) [inline]
template<typename ELEMENT_TYPE>
LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::CUDAArray ( const std::vector< ELEMENT_TYPE > &  hostVector  )  [inline]
template<typename ELEMENT_TYPE>
LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::~CUDAArray (  )  [inline]

Member Function Documentation

template<typename ELEMENT_TYPE>
std::size_t LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::byteSize (  )  const [inline]
template<typename ELEMENT_TYPE>
__host__ __device__ ELEMENT_TYPE* LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::data (  )  [inline]
template<typename ELEMENT_TYPE>
__host__ __device__ const ELEMENT_TYPE* LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::data (  )  const [inline]
template<typename ELEMENT_TYPE>
void LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::load ( const ELEMENT_TYPE *  hostData  )  [inline]
template<typename ELEMENT_TYPE>
void LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::operator= ( const CUDAArray< ELEMENT_TYPE > &  array  )  [inline]
template<typename ELEMENT_TYPE>
void LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::save ( ELEMENT_TYPE *  hostData  )  const [inline]

Member Data Documentation

template<typename ELEMENT_TYPE>
ELEMENT_TYPE* LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::dataPointer [private]
template<typename ELEMENT_TYPE>
std::size_t LibGeoDecomp::CUDAArray< ELEMENT_TYPE >::size [private]

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