Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void Enqueue(TOpenCLCommandQueue CmdQueue, Int32 WorkSize, Boolean CPUAdjust) | Submits the Kernel to cmdQueue for computation with specified WorkSize. |
| 2 | void Enqueue(TOpenCLCommandQueue CmdQueue, Int32 WorkSize, Int32 LocalSize, Boolean CPUAdjust) | Submits the Kernel to cmdQueue for computation with specified WorkSize and LocalSize. |
Overload 1: void Enqueue(TOpenCLCommandQueue CmdQueue, Int32 WorkSize, Boolean CPUAdjust)
Submits the Kernel to cmdQueue for computation with specified WorkSize.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | CmdQueue | TOpenCLCommandQueue | |
| 2 | WorkSize | Int32 | |
| 3 | CPUAdjust | Boolean |
Result: stored in self (calling object)
Setting CPUAdjust to true will reduce WorkSize by factor OPENCL_BLOCKLEN and assume presence of kernel internal for-loops. Kernel internal for-loops can significantly speed up execution of the kernel on CPU devices lowering the function call overhead. The CPUAdjust parameter is used only if the device is of CPU type. The for-loop pattern expected inside the kernel looks like this:
size_t i = get_global_id(0);
size_t tIdx = i*BLOCK_LEN;
size_t tIdxLen = tIdx + BLOCK_LEN;
if (tIdxLen > Length) tIdxLen = Length;
for (i = tIdx; i < tIdxLen; i++)
{
}
where BLOCK_LEN matches OPENCL_BLOCKLEN.
Overload 2: void Enqueue(TOpenCLCommandQueue CmdQueue, Int32 WorkSize, Int32 LocalSize, Boolean CPUAdjust)
Submits the Kernel to cmdQueue for computation with specified WorkSize and LocalSize.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | CmdQueue | TOpenCLCommandQueue | |
| 2 | WorkSize | Int32 | |
| 3 | LocalSize | Int32 | |
| 4 | CPUAdjust | Boolean |
Result: stored in self (calling object)
When specified explicitely the (WorkSize mod LocalSize) is required to be zero. Setting CPUAdjust to true will reduce WorkSize by factor OPENCL_BLOCKLEN and assume presence of kernel internal for-loops. Kernel internal for-loops can significantly speed up execution of the kernel on CPU devices lowering the function call overhead. Kernel internal for-loops in GPU devices cause large performance penalties. The CPUAdjust parameter should be used only if the device is of CPU type. LocalSize is also called workgroup size. The for-loop pattern expected inside the kernel looks like this:
size_t i = get_global_id(0);
size_t tIdx = i*BLOCK_LEN;
size_t tIdxLen = tIdx + BLOCK_LEN;
if (tIdxLen > Length) tIdxLen = Length;
for (i = tIdx; i < tIdxLen; i++)
{
}
where BLOCK_LEN matches OPENCL_BLOCKLEN.