Declare utility routines for OpenCL.
- Author
- Anca Hamuraru anca@.nosp@m.stre.nosp@m.amcom.nosp@m.puti.nosp@m.ng.eu
|
std::string | ocl_get_error_string (cl_int error) |
| Convert error code to diagnostic string.
|
|
static bool | haveStreamTasksCompleted (const DeviceStream &) |
| Pretend to synchronize an OpenCL stream (dummy implementation). More...
|
|
void | prepareGpuKernelArgument (cl_kernel kernel, const KernelLaunchConfig &config, size_t argIndex) |
| A function for setting up a single OpenCL kernel argument. This is the tail of the compile-time recursive function below. It has to be seen by the compiler first. As NB kernels might be using dynamic local memory as the last argument, this function also manages that, using sharedMemorySize from config . More...
|
|
template<typename CurrentArg , typename... RemainingArgs> |
void | prepareGpuKernelArgument (cl_kernel kernel, const KernelLaunchConfig &config, size_t argIndex, const CurrentArg *argPtr, const RemainingArgs *...otherArgsPtrs) |
| Compile-time recursive function for setting up a single OpenCL kernel argument. This function uses one kernel argument pointer argPtr to call clSetKernelArg(), and calls itself on the next argument, eventually calling the tail function above. More...
|
|
template<typename... Args> |
void * | prepareGpuKernelArguments (cl_kernel kernel, const KernelLaunchConfig &config, const Args *...argsPtrs) |
| A wrapper function for setting up all the OpenCL kernel arguments. Calls the recursive functions above. More...
|
|
void | launchGpuKernel (cl_kernel kernel, const KernelLaunchConfig &config, const DeviceStream &deviceStream, CommandEvent *timingEvent, const char *kernelName, const void *) |
| Launches the OpenCL kernel and handles the errors. More...
|
|
static bool haveStreamTasksCompleted |
( |
const DeviceStream & |
| ) |
|
|
inlinestatic |
Pretend to synchronize an OpenCL stream (dummy implementation).
- Returns
- Not implemented in OpenCL.
void launchGpuKernel |
( |
cl_kernel |
kernel, |
|
|
const KernelLaunchConfig & |
config, |
|
|
const DeviceStream & |
deviceStream, |
|
|
CommandEvent * |
timingEvent, |
|
|
const char * |
kernelName, |
|
|
const void * |
|
|
) |
| |
|
inline |
Launches the OpenCL kernel and handles the errors.
- Parameters
-
[in] | kernel | Kernel function handle |
[in] | config | Kernel configuration for launching |
[in] | deviceStream | GPU stream to launch kernel in |
[in] | timingEvent | Timing event, fetched from GpuRegionTimer |
[in] | kernelName | Human readable kernel description, for error handling only |
- Exceptions
-
void prepareGpuKernelArgument |
( |
cl_kernel |
kernel, |
|
|
const KernelLaunchConfig & |
config, |
|
|
size_t |
argIndex |
|
) |
| |
|
inline |
A function for setting up a single OpenCL kernel argument. This is the tail of the compile-time recursive function below. It has to be seen by the compiler first. As NB kernels might be using dynamic local memory as the last argument, this function also manages that, using sharedMemorySize from config
.
- Parameters
-
[in] | kernel | Kernel function handle |
[in] | config | Kernel configuration for launching |
[in] | argIndex | Index of the current argument |
template<typename CurrentArg , typename... RemainingArgs>
void prepareGpuKernelArgument |
( |
cl_kernel |
kernel, |
|
|
const KernelLaunchConfig & |
config, |
|
|
size_t |
argIndex, |
|
|
const CurrentArg * |
argPtr, |
|
|
const RemainingArgs *... |
otherArgsPtrs |
|
) |
| |
Compile-time recursive function for setting up a single OpenCL kernel argument. This function uses one kernel argument pointer argPtr
to call clSetKernelArg(), and calls itself on the next argument, eventually calling the tail function above.
- Template Parameters
-
CurrentArg | Type of the current argument |
RemainingArgs | Types of remaining arguments after the current one |
- Parameters
-
[in] | kernel | Kernel function handle |
[in] | config | Kernel configuration for launching |
[in] | argIndex | Index of the current argument |
[in] | argPtr | Pointer to the current argument |
[in] | otherArgsPtrs | Pack of pointers to arguments remaining to process after the current one |
template<typename... Args>
void* prepareGpuKernelArguments |
( |
cl_kernel |
kernel, |
|
|
const KernelLaunchConfig & |
config, |
|
|
const Args *... |
argsPtrs |
|
) |
| |
A wrapper function for setting up all the OpenCL kernel arguments. Calls the recursive functions above.
- Template Parameters
-
Args | Types of all the kernel arguments |
- Parameters
-
[in] | kernel | Kernel function handle |
[in] | config | Kernel configuration for launching |
[in] | argsPtrs | Pointers to all the kernel arguments |
- Returns
- A handle for the prepared parameter pack to be used with launchGpuKernel() as the last argument
- currently always nullptr for OpenCL, as it manages kernel/arguments association by itself.