Closed maleadt closed 3 months ago
Filed upstream: https://github.com/intel/compute-runtime/issues/725
As noted by upstream, this is expected; the suggested launch configuration exactly covers the input space. Since we don't care about this, using bounds checks at run time, we can use more relaxed launch configurations. A workaround is implemented in https://github.com/JuliaGPU/oneAPI.jl/pull/431, but once there's a new driver release we should use the Level Zero extension to query the maximum launch configuration for a given kernel.
With prime-sized inputs the suggested group size always consists of only a single thread:
But also with non prime-sized inputs the configuration looks highly suboptimal:
(this kernel can launch groups of 512 threads on this system)
Maybe I'm misinterpreting the use of this API? I thought it was a counterpart of the CUDA occupancy API (
cuOccupancyMaxPotentialBlockSize
), suggesting a groupsize that accomplishes a reasonable occupancy.