2015-04-17 89 views
0

我得到的本地工作大小爲512的openCL錯誤CL_INVALID_WORK_GROUP_SIZE該程序適用於2的較低冪,所以我假設錯誤原因超過了CL_DEVICE_MAX_WORK_GROUP_SIZE以編程方式查找openCL設備支持的最大工作組大小

有沒有辦法查詢openCL的精確值?

+0

[Google首次針對'CL_DEVICE_MAX_WORK_GROUP_SIZE']的結果](https://www.khronos.org/message_boards/showthread.php/7494-CL_DEVICE_MAX_WORK_GROUP_SIZE) –

+0

已經找到了,謝謝!它在那篇文章中沒有說明如何獲得屬性。 – mike

+1

不,但它描述了您所遇到的同樣的潛在問題,並提出了原因和解決方法。 –

回答

2

您可以查詢設備的最大工作組大小是這樣的:

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); 
+0

Thx!這裏是相關的手冊頁:[clGetDeviceInfo](https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clGetDeviceInfo.html) – mike

相關問題