I think there may be solutions to some of these things.<p>Firstly, it sounds they are envisioning pipelined algorithms where stages are run on the best compute device. The CPU pipeline would presumably handle all asynchronous Apis and only call the pipelined algorithms once the data was available. It would be much easier to parallelize the code that can be easily be parallelized if the gpu context is the same as the cpu context.<p>The second part I think is up to compilers. If we can make better compilers for gpu code which integrate more nicely with cpu code then the super low level programming won&#x27;t be as necessary. GPUs haven&#x27;t been in the limelight nearly as long as CPUs, so it&#x27;s understandable that most modern languages are made for CPU code. I&#x27;d personally like to see LLVM and PTX playing together nicely in Rust.<p>Humans will still have to consider the differences in optimal memory access &#x2F; branching logic patterns, but that&#x27;s understandable. We already do that - with the CPU in mind - so it will just take a bit of extra learning to consider the GPU.