OpenCL获取使用的工作组大小

时间:2015-03-11 08:17:20

标签: c opencl

在OpenCL中,如何知道运行时期间本地工作组的确切大小? clGetKernelWorkGroupInfo似乎只返回最大可能的大小,请参阅https://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelWorkGroupInfo.html

如果您没有指定尺寸,

上述文件的CL_KERNEL_COMPILE_WORK_GROUP_SIZE将给出(0,0,0)。

1 个答案:

答案 0 :(得分:0)

您可以使用clGetKernelWorkGroupInfo查询工作组的最大可用大小:

size_t max_available_local_wg_size;
cl_int ret = clGetKernelWorkGroupInfo(kernel, device_id, CL_KERNEL_WORK_GROUP_SIZE, sizeof(size_t),                 &max_available_local_wg_size, NULL);

但是,如果您没有手动设置值,实现将自行选择。通常,您可以使用profiler获取实际工作组大小,该分析器随附来自供应商的OpenCL SDK。