SkePU(integratedwithStarPU)  0.8.1
 All Classes Namespaces Files Functions Enumerations Friends Macros Groups Pages
Public Member Functions | List of all members
skepu::DeviceMemPointer_CU< T > Class Template Reference

A class representing a CUDA device memory allocation. More...

#include <device_mem_pointer_cu.h>

Public Member Functions

 DeviceMemPointer_CU (T *root, T *start, int numElements, int deviceID, int totalVecSize=-1)
 
 ~DeviceMemPointer_CU ()
 
void copyHostToDevice (int numElements=-1, bool copyLast=true) const
 
void copyDeviceToHost (int numElements=-1, bool copyLast=true) const
 
void copyDeviceToDevice (T *copyToPointer, int numElements, int dstOffset=0, int srcOffset=0) const
 
T * getDeviceDataPointer () const
 
int getDeviceID () const
 
void changeDeviceData ()
 

Detailed Description

template<typename T>
class skepu::DeviceMemPointer_CU< T >

A class representing a CUDA device memory allocation.

A class representing a CUDA device memory allocation for Matrix.

This class represents a CUDA device memory allocation and controls the data transfers between host and device. Used rarely in this translation as data management is mostly done by StarPU.

Constructor & Destructor Documentation

template<typename T >
skepu::DeviceMemPointer_CU< T >::DeviceMemPointer_CU ( T *  root,
T *  start,
int  numElements,
int  deviceID,
int  totalVecSize = -1 
)

The constructor allocates a certain amount of space in device memory and stores a pointer to some data in host memory.

Parameters
startPointer to data in host memory.
numElementsNumber of elements to allocate memory for.
deviceIDID of a valid CUDA device to allocate memory on.
template<typename T >
skepu::DeviceMemPointer_CU< T >::~DeviceMemPointer_CU ( )

The destructor releases the allocated device memory.

Member Function Documentation

template<typename T >
void skepu::DeviceMemPointer_CU< T >::changeDeviceData ( )

Marks the device data as changed.

template<typename T >
void skepu::DeviceMemPointer_CU< T >::copyDeviceToDevice ( T *  copyToPointer,
int  numElements,
int  dstOffset = 0,
int  srcOffset = 0 
) const

Copies data between device memory. Used internally.

Parameters
copyToPointerthe pointer from where to copy
numElementsNumber of elements to copy, default value -1 = all elements.
dstOffsetOffset in the destination pointer.
srcOffsetOffset in the source pointer.
template<typename T >
void skepu::DeviceMemPointer_CU< T >::copyDeviceToHost ( int  numElements = -1,
bool  copyLast = true 
) const

Copies data from device memory to host memory. Only copies if data on device has been marked as changed.

Parameters
numElementsNumber of elements to copy, default value -1 = all elements.
copyLastSpecify whether should copy only the last allocated data.
template<typename T >
void skepu::DeviceMemPointer_CU< T >::copyHostToDevice ( int  numElements = -1,
bool  copyLast = true 
) const

Copies data from host memory to device memory.

Parameters
numElementsNumber of elements to copy, default value -1 = all elements.
copyLastSpecify whether should copy only the last allocated data.
template<typename T >
T * skepu::DeviceMemPointer_CU< T >::getDeviceDataPointer ( ) const
Returns
Pointer to device memory.
template<typename T >
int skepu::DeviceMemPointer_CU< T >::getDeviceID ( ) const
Returns
The device ID of the CUDA device that has the allocation.

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