以编程方式找出 openCL 设备支持的最大工作组大小
Programmatically find out maximal work group size supported by openCL device
我收到本地工作大小为 512 的 openCL 错误 CL_INVALID_WORK_GROUP_SIZE
。该程序以 2 的较低幂运行,因此我假设错误原因超过 CL_DEVICE_MAX_WORK_GROUP_SIZE
.
有没有办法查询 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);
我收到本地工作大小为 512 的 openCL 错误 CL_INVALID_WORK_GROUP_SIZE
。该程序以 2 的较低幂运行,因此我假设错误原因超过 CL_DEVICE_MAX_WORK_GROUP_SIZE
.
有没有办法查询 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);