opencl - clGetKernelWorkGroupInfo - CL_KERNEL_WORK_GROUP_SIZE 是 OpenCL 在 clEnqueueNDRange 内核中未指定时使用的大小吗?

标签 opencl

我读到在将内核排队时未指定工作组大小时,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/

相关文章:

opencv - 如何确保 OpenCV 实际运行 OpenCL 内核?

c++ - clBuild 选项,传递 OpenCL 扩展

c# - 使用 Magick.NET 启用 OpenCL

c - 为什么 OpenCL 找不到任何设备?

assembly - 在设备上实现 OpenCL 需要采取哪些步骤?

c++ - OpenCL 将 float16 转换为 float*

cuda - Fermi L2 缓存命中延迟?

opencl - 工作组和工作项执行

java - 使用 JOCL/OPENCL 加速强度总和计算

c - 如何在 Windows 7 上使用 GCC 和 NVIDIA Toolkit 编译和链接 OpenCL?