pub fn linear_grid(numel: usize) -> (u32, u32, u32)
Split a linear element count into a (x, y, 1) workgroup grid of 256-thread groups, respecting the 65535 per-dimension dispatch limit.