我得到的本地工作大小爲512的openCL錯誤CL_INVALID_WORK_GROUP_SIZE
該程序適用於2的較低冪,所以我假設錯誤原因超過了CL_DEVICE_MAX_WORK_GROUP_SIZE
。以編程方式查找openCL設備支持的最大工作組大小
有沒有辦法查詢openCL的精確值?
我得到的本地工作大小爲512的openCL錯誤CL_INVALID_WORK_GROUP_SIZE
該程序適用於2的較低冪,所以我假設錯誤原因超過了CL_DEVICE_MAX_WORK_GROUP_SIZE
。以編程方式查找openCL設備支持的最大工作組大小
有沒有辦法查詢openCL的精確值?
您可以查詢設備的最大工作組大小是這樣的:
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);
Thx!這裏是相關的手冊頁:[clGetDeviceInfo](https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clGetDeviceInfo.html) – mike
[Google首次針對'CL_DEVICE_MAX_WORK_GROUP_SIZE']的結果](https://www.khronos.org/message_boards/showthread.php/7494-CL_DEVICE_MAX_WORK_GROUP_SIZE) –
已經找到了,謝謝!它在那篇文章中沒有說明如何獲得屬性。 – mike
不,但它描述了您所遇到的同樣的潛在問題,並提出了原因和解決方法。 –