以编程方式查找openCL设备支持的最大工作组大小

时间:2015-04-17 14:20:05

标签: c++ opencl gpgpu

我得到的openCL错误CL_INVALID_WORK_GROUP_SIZE的本地工作大小为512.该程序使用较低的2的幂,所以我假设错误原因超过{{1 }}

有没有办法查询openCL的确切值?

1 个答案:

答案 0 :(得分:2)

您可以像这样查询设备的最大工作组大小:

size_t maxWorkGroupSize;
clGetDeviceInfo(device, CL_DEVICE_MAX_WORK_GROUP_SIZE,
                sizeof(size_t), &maxWorkGroupSize, NULL);

请注意,特定内核可能具有不同(较低)的最大值,您可以像这样查询:

size_t maxWorkGroupSize;
clGetKernelWorkGroupInfo(kernel, device, CL_KERNEL_WORK_GROUP_SIZE,
                         sizeof(size_t), &maxWorkGroupSize, NULL);