- CLHandleType
- CLGetInfoInteger
- CLGetInfoString
- CLContextCreate
- CLContextFree
- CLGetDeviceInfo
- CLProgramCreate
- CLProgramFree
- CLKernelCreate
- CLKernelFree
- CLSetKernelArg
- CLSetKernelArgMem
- CLSetKernelArgMemLocal
- CLBufferCreate
- CLBufferFree
- CLBufferWrite
- CLBufferRead
- CLExecute
- CLExecutionStatus
CLExecute
此函数运行一个 OpenCL程序。有三个版本的函数:
1. 用一个内核启动内核函数
bool CLExecute(
|
2. 启动几个内核副本 (OpenCL函数) 与任务空间描述
bool CLExecute(
|
3. 启动几个内核副本 (OpenCL函数) 与任务空间描述以及集合本地任务子集大小规范
bool CLExecute(
|
参数
kernel
[in] 处理OpenCL内核.
work_dim
[in] 任务空间维度.
global_work_offset[]
[in] 在任务空间初始偏移.
global_work_size[]
[in] 任务子集大小.
local_work_size[]
[in] 集合本地任务子集大小.
返回值
如果成功则返回true, 否则返回false. 有关错误信息, 使用 GetLastError() 函数.
注意
以下例子中要考虑参数的使用:
- work_dim 指定 work_items[] 描述任务的阵列维度. 如果work_dim=3,三维阵列work_items[N1, N2, N3] 将被使用.
- global_work_size[] 包含设定 work_items[]阵列大小的值. 如果 work_dim=3, global_work_size[3] 阵列将是 {40, 100, 320}. 然后我们将得到 work_items[40, 100, 320]. 所以,任务总数是 is 40 x 100 x 320 = 1 280 000.
- local_work_size[] 设定任务的子集将由OpenCL程序的指定内核来执行. 其维度等于 work_items[] 维度并允许共同任务子集精确分割成更小的子集. 事实上,应当选择 local_work_size[] 从而使全局任务设定分割成更小的子集. local_work_size[3]={10, 10, 10} 将适合当前的例子, 比如work_items[40, 100, 320] 能被 local_items[10, 10, 10] 阵列毫无剩余的收集起来.