The opencl specification writes :
local_work_size can also be a NULL value in which case the OpenCL implementation will determine how to be break the global work-items into appropriate work-group instances.
How Opencl implementation can decide the work group size if local_work_size is a NULL value?
Thanks in advance
for AMD GPU is best if local_size is multiple of 64. so it set local_size to multiple of 64 depending on other factors like register usage.
if you pass NULL as local_size then you say that it doesn't matter what is local size and kernel work on any size.
If you do not specify any size for local work groups, the appropraite size is choosen by the OpenCL implementation.This local workgroup size selection depends on the resource requirements of the kernel.