Comment
Comment by ImprobableTruth
The reason is that the usage is completely different from coroutine based async. With GPUs you want to queue _as many async operations as possible_ and only then synchronize. That is, you would have a program like this (pseudocode):
With coroutines/async await, something like this
would synchronize after every step, being much more inefficient.