4 ms·
Have you seen CUDA? It's C++, where half of it runs on the CPU, and half of it runs on the GPU. Memory transfers are automatically scheduled for you! No, obviou
by Jasper_ 6y ago
Have you seen CUDA? It's C++, where half of it runs on the CPU, and half of it runs on the GPU. Memory transfers are automatically scheduled for you! No, obviously the hardware doesn't magically transform when you run a CUDA program, but there's a lot of features in the hardware that just aren't exercised by compute shaders, and the 'user-space host driver' is very different.
> Also, I the case of "asynchronous shaders" it's a command list dispatching feature, which is equally applicable to CUDA/ROCm and compute shaders.
Async compute affects how you have to synchronize your code, and what your hazards are. If you have a queue of items, you know when one starts that the other is done. With async compute, you can give up that guarantee in exchange for overlapping work. NVIDIA still doesn't have this in modern GPUs.
- my123 6y agoYou have async compute on NVIDIA GPUs. See this slide deck about it: https://developer.download.nvidia.com/CUDA/training/StreamsAndConcurrencyWebinar.pdf https://developer.download.nvidia.com/CUDA/training/StreamsA... (for the implementation in Fermi, it's even more flexible since then)