在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)。
答案 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。