Good point, isolation is a real part of the picture. CPU-style boundaries (and the GPU sandboxing now landing, like the Kata Containers work) are what make it safe to co-locate unrelated workloads on the same card without fault or memory-contention risk, which widens the set of placements a scheduler is even allowed to make.
Taking that a step further: once co-location is safe, we have to decide which workload runs on which GPU, at what time, at what priority, given that each one wants something different from the hardware (memory footprint, latency tolerance, duration). Isolation gives you a bigger, safer decision space; something still has to pick the right point in it. And rigid partitioning can even cut utilization, since an idle slice can't lend capacity to a busy neighbor.
That's exactly the direction we're taking next: an intelligent solution for job scheduling. We've got a follow-up article on it in the works, which will be published next week. Would be curious to get your read when it's out.