我读到在将内核排队时未指定工作组大小时,OpenCL 会为我选择一个。
例如:
//don't know which workgroup size OpenCl will use!
clEnqueueNDRangeKernel(queue, kernel, 1, NULL, &global_size, NULL, 0, NULL, NULL);
有没有办法获得 OpenCL 在这里使用的工作组大小?
OpenCL 的工作组大小是否选择 clGetKernelWorkGroupInfo 返回的大小?
先感谢您!
最佳答案
CL_KERNEL_GLOBAL_WORK_SIZE 是 最大 您可以获得的工作组大小,这取决于内核的内存要求。
如果您在执行内核时没有指定工作组大小,OpenCL 将尝试为您选择最好的,即 五月 或 不能 是最大尺寸。
实际上,仅当与设备的计算单元数量相比,您有很多工作项时,才使用最大尺寸才是最佳选择。
关于opencl - clGetKernelWorkGroupInfo - CL_KERNEL_WORK_GROUP_SIZE 是 OpenCL 在 clEnqueueNDRange 内核中未指定时使用的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13496681/