Queue class
#include <FAST/OpenCLProgram.hpp>
Wrapper for OpenCL CommandQueue.
Contents
Constructors, destructors, conversion operators
- Queue(cl::CommandQueue clQueue)
Public functions
- void add(const Kernel& kernel, std::vector<int> globalSize, std::vector<int> offset = std::vector<int>(), std::vector<int> groupSize = std::vector<int>())
- Enqueue a Kernel to this command queue.
- void finish()
- Block until entire command queue is finished.
- void addReadBuffer(OpenCLBuffer buffer, bool block, std::size_t offset, std::size_t size, void* pointerToData)
- Copy data from buffer on device to pointer on host.
- void addWriteBuffer(OpenCLBuffer buffer, bool block, std::size_t offset, std::size_t size, void* pointerToData)
- Write data from host pointer to OpenCL buffer.
- void addCopyBuffer(OpenCLBuffer srcBuffer, OpenCLBuffer dstBuffer, std::size_t srcOffset, std::size_t destOffset, std::size_t size)
- Copy data from one OpenCL buffer (source) to another (destination)
- auto getHandle() const -> cl::CommandQueue
Function documentation
void fast:: Queue:: add(const Kernel& kernel,
std::vector<int> globalSize,
std::vector<int> offset = std::vector<int>(),
std::vector<int> groupSize = std::vector<int>())
Enqueue a Kernel to this command queue.
| Parameters | |
|---|---|
| kernel | |
| globalSize | total number of work-items for each dimension |
| offset | work-item offset, if none is given, it is zero for all dimensions |
| groupSize | How many work-items should be each work-group for each dimension. If not provided, platform will decide automatically |
void fast:: Queue:: addReadBuffer(OpenCLBuffer buffer,
bool block,
std::size_t offset,
std::size_t size,
void* pointerToData)
Copy data from buffer on device to pointer on host.
| Parameters | |
|---|---|
| buffer | OpenCL buffer to read from |
| block | Whether this call should block and wait until the data operation is finished. |
| offset | Byte offset in OpenCL buffer |
| size | nr of bytes to read (e.g. elements*sizeof(datatype)) |
| pointerToData | Pointer to host memory to read data into. Must be allocated with big enough size |
void fast:: Queue:: addWriteBuffer(OpenCLBuffer buffer,
bool block,
std::size_t offset,
std::size_t size,
void* pointerToData)
Write data from host pointer to OpenCL buffer.
| Parameters | |
|---|---|
| buffer | OpenCL buffer to write data to |
| block | Whether this call should block and wait until the data operation is finished. |
| offset | Byte offset in OpenCL buffer to write data to |
| size | nr of bytes to write (e.g. elements*sizeof(datatype)) |
| pointerToData | Pointer to host memory to read data from. Must be bigger than size. |
void fast:: Queue:: addCopyBuffer(OpenCLBuffer srcBuffer,
OpenCLBuffer dstBuffer,
std::size_t srcOffset,
std::size_t destOffset,
std::size_t size)
Copy data from one OpenCL buffer (source) to another (destination)
| Parameters | |
|---|---|
| srcBuffer | source OpenCL buffer |
| dstBuffer | destination OpenCL buffer |
| srcOffset | offset in bytes in source buffer |
| destOffset | offset in bytes in destination buffer |
| size | size in bytes (e.g. elements*sizeof(datatype)) |