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

A class representing an OpenCL device memory allocation. More...

#include <device_mem_pointer_cl.h>

Public Member Functions

 DeviceMemPointer_CL (T *start, int numElements, Device_CL *device)
 
 ~DeviceMemPointer_CL ()
 
void copyHostToDevice (int numElements=-1, bool copyLast=false) const
 
void copyDeviceToHost (int numElements=-1, bool copyLast=false) const
 
void copyDeviceToDevice (cl_mem copyToPointer, int numElements, int dstOffset=0, int srcOffset=0) const
 
cl_mem getDeviceDataPointer () const
 
void changeDeviceData ()
 

Detailed Description

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

A class representing an OpenCL device memory allocation.

This class represents an OpenCL 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_CL< T >::DeviceMemPointer_CL ( T *  start,
int  numElements,
Device_CL device 
)

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.
devicePointer to a valid device to allocate the space on.

References skepu::Device_CL::getContext(), and skepu::Device_CL::getQueue().

Here is the call graph for this function:

template<typename T >
skepu::DeviceMemPointer_CL< T >::~DeviceMemPointer_CL ( )

The destructor releases the allocated device memory.

Member Function Documentation

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

Marks the device data as changed.

template<typename T >
void skepu::DeviceMemPointer_CL< T >::copyDeviceToDevice ( cl_mem  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_CL< T >::copyDeviceToHost ( int  numElements = -1,
bool  copyLast = false 
) 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_CL< T >::copyHostToDevice ( int  numElements = -1,
bool  copyLast = false 
) 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 >
cl_mem skepu::DeviceMemPointer_CL< T >::getDeviceDataPointer ( ) const
Returns
OpenCL memory object representing data on the device.

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