work-size dimensions difference between 2 APIs
If I retrieve the value of max work item dimensions using clGetDeviceInfo(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS ), I get the value 8, i.e. 8 dimensions. The documentation also says that the minimum value is 3 - "Maximum dimensions that specify the
global and local work-item IDs used by the data parallel execution model. (Refer to clEnqueueNDRangeKernel). The minimum value is 3."
And later in the documentation for clEnqueueNDRangeKernel( ), it says that - "work_dim is the number of dimensions used to specify the global work-items and work-items in the work-group. work_dim must be greater than zero and less than or equal to three."
In clGetDeviceInfo( ), it says minimum is 3 and in clEnqueueNDRangeKernel( ), it says work_dim less than or equal to three.? I am confused here as to why work_dim says the max dimensions can't exceed 3, while clGetDeviceInfo says 3 is the minimum.
Re: work-size dimensions difference between 2 APIs
Devices must support a minimum size of 3. However, you can enqueue a kernel with 1, 2, or 3 dimensions.