R80 – GPU Support For Everyone

GPU support is indeed here. A modern GPU that supports Vulkan 1.4 is required however if you use Linux modern may mean almost 10 years old. If you want to use it start by reading the previous post about GPU support for a quick introduction. All information there is still correct. Currently only BestSource has been updated with full support but over the next few days KNLMeans and BM3D ports should be ready as well. Enjoy the small FAQ below.

Why Vulkan 1.4?

It’s the only single API solution that works on Windows, Linux and OSX. Sure, you have to use MoltenVk or similar on OSX but it does work and runs well enough. Some people have suggested OpenCL but it’s effectively a dead end API with no support in modern OSX.

As for why version 1.4 it’s to have a baseline feature set that’s not too limiting. It’s not going to be recent by the time GPUs are affordable again.

Why is only one GPU at a time usable?

Basically to keep complexity down and most systems don’t have two meaningful discrete GPUs. There’s also no fast path to transfer data between two GPUs so it’d create even bigger performance pitfalls. If someone writes an extremely slow and processing heavy plugin nothing stops it from implementing multi-GPU support itself.

Should I use integrated GPUs?

They’re supported but since memory bandwidth is usually also a limiting factor it can be markedly slower. For example the Zen5 integrated graphics on desktop CPUs is a complete waste of time to try. Somewhat competent APUs may be useful.

Can I write plugins in cuda or other APIs?

Yes, the handles needed to map memory, semaphores and such are exported. Note that the interoperability mainly targets CUDA and other Vulkan environments and not much else. This is due to very few other interoperability paths existing. Note that Metal interop was deemed too complex to be worth the effort.

Why are cuda plugins faster?

The short answer is that Vulkan doesn’t expose all the GPU functionality. Especially things like matrix math still need additional extensions to reach similar speed even on NVidia hardware. Hopefully most of the gap will be closed through additional Vulkan extensions in 2-3 years time.

Posted in Uncategorized