AMDs AMDVLK Vulkan Driver For Linux Remains Horribly Slow At Compute Compared To The Mesa RADV Driver

From LinuxReviews
Jump to navigationJump to search
Amdlogo.png

AMDVLK v-2021.Q1.4, released late last week, was a huge yawn with a Mad Max specific performance quirk and the API verison updated to Vulkan 1.2.169. The last half dozen releases were equally boring. It is therefore not shocking that the performance-differences between the AMD AMDVLK Vulkan driver and the Mesa RADV driver are the same today as they were half a year ago: The graphics performance is near-identical, with AMDVLK being slightly slower, while the gap between their respective compute performance remains significant.

written by 윤채경 (Yoon Chae-kyung)  2021-03-02 - last edited 2021-03-02. © CC BY

AMD representatives.jpg
What we imagine the AMD graphics division looks like. This is from a trade that took place something like a decade ago.

All the modern GNU/Linux distributions come with the Mesa graphics stack as a standard component. It includes a Vulkan graphics driver for AMD cards called RADV and a Vulkan driver for Intel graphics called ANV. AMD offers Linux users another, completely different, Vulkan implementation called AMDVLK. It does not come with any modern GNU/Linux distributions, you will have to manually download and install it if you want it. Is it worth the hassle? Well, it depends..

How Fast Can They Compute?[edit]

Vulkan is generally thought of as a graphics API for games. And it is, but it can do a lot more. Vulkan can be used to do a lot of the same graphics cards computations that have traditionally been done using languages like OpenCL and CUDA.

Image processing is one of the tasks you can use Vulkan to do on a GPU. Batch-processing 20 images with the realsr-ncnn-vulkan Vulkan implementation of the excellent RealSR image up-scaler shows that the Mesa RADV Vulkan driver is a lot faster than AMDs AMDVLK alternative when it comes to compute. This was the case six months ago and it is still the case today. The 20 anime girls with questionmarks benchmark takes two and a half minutes longer with the AMDVLK driver. Put differently, the Mesa RADV finishes in two thirds of the time it takes AMDVLK to produce bit-identical up-scaled images.

Blond-anime-girl-with-red-questionmark.png
a blond anime girl with a red questionmark.
realsr-ncnn-vulkan v20210210
20-anime-girls-with-questionmarks (20 images)
AMDVLK
v-2021.Q1.4
AMD RADV ACO
Mesa 20.3.4
8m2.741s
+2m 33s
5m29.591s

The waifu2x-ncnn-vulkan implementation of the waifu2x image up-sclaing algorithm is not all that unlike the realsr-ncnn-vulkan implementation of RealSR, so it is not at all shocking that the results of this test are somewhat similar. Mesa RADV is, again, faster in this benchmark though the performance-gap here is smaller than it is in the realsr-ncnn-vulkan test. You won't notice any performance-difference if you up-scale a single image with waifu2x-ncnn-vulkan but it will add up if you batch-process 100 or 1000 images.

waifu2x-ncnn-vulkan
anime-girls-with-questionmarks (100 images)
AMDVLK
v-2021.Q1.4
AMD RADV ACO
Mesa 20.3.4
4m44.617s
+15.2s
4m29.423s

Graphics Performance[edit]

The AMDVLK driver and the Mesa RADV driver perform very similarly in the MSI Kombustor Vulkan benchmarks with the MSI Kombustor TessMark benchmark being a notable exception. This was the case half a year ago and it is still the case today. The difference between 50 and 51 frames per second in the Furmark-Donut VK benchmark is irrelevant but the difference between 13 and 104 FPS in the TessMark benchmark is significant.

MSI Kombustor v4.1.7.0, Wine 6.3, 1080p
AMDVLK 2021.Q1.4 AMD RADV ACO, Mesa 20.3.4
Furmark-Donut VK 50 FPS 51 FPS
Furkmark-MSI VK 80 FPS 82 FPS
Phong-Donut 504 FPS 502 FPS
TessMark-X32 VK 13 FPS Blond-anime-girl-with-red-questionmark.png 104 FPS
TessMark-X16 VK 95 FPS Blond-anime-girl-with-red-questionmark.png 246 FPS

The MSI Kombustor TessMark benchmarks are clearly doing something the AMDVLK is incapable of handling at acceptable framerates. This is the only test where there is such a gigantic difference so it will probably not matter in the vast majority of games and applications but there could be some that do the same thing - with a huge performance-penalty as a result.

Basemark GPU v1.2.3 tell as similar story of two nearly equal Vulkan drivers. The Mesa RADV driver has a one frame per second advantage at 4K, so it does get the higher score. The minimum and maximum values are exactly the same in both cases and practical difference just isn't there.

Basemark 1.2.3, Vulkan, MSI RX 470 8 GiB
4K/High Score Avg Min Max
Mesa RADV 20.3.4 3968 40 33 55
AMDVLK 2021.Q1.4 3947 39 33 55

The difference becomes slightly more pronounced in the Basemark GPU when going down to 1080p. AMD RADV gets the higher overall store with higher average and maximum framerates. However, the AMDVLK driver has a higher minimum frame value and that is, in some cases, more important.

Basemark 1.2.3, Vulkan, MSI RX 470 8 GiB
1080p/Medium Score Avg Min Max
Mesa RADV 20.3.4 42379 424 234 786
AMDVLK 2021.Q1.4 40873 409 257 752

Conclusions[edit]

The AMDVLK driver is not worth the trouble from a pure performance standpoint. It is way slower at Vulkan compute and it is marginally, though hardly noticeable, slower at graphics. The difference in graphics performance is so low that it makes little difference, but AMDVLK is the slightly slower of the two and that is the one you would have to manually download and install..

Compatibility is of course a whole other story. If a game runs like it should with the AMDVLK driver and it doesn't run at all, or crashes, with the Mesa RADV driver then the choice is obvious. AMDVLK is definitively worth trying if you have a Vulkan game that does not work as it should with the Mesa RADV driver that comes with all the modern GNU/Linux distributions. Just make sure you don't accidentally use it if you need to batch-upscale hundreds of images using Vulkan compute, it really is significantly slower in that specific area.

You can get the AMDVLK driver from https://github.com/GPUOpen-Drivers/AMDVLK/releases/ if you happen to be using either a Ubuntu-based distribution or a distribution that can use RPM packages for RedHat 7.8 (they work on Fedora). The MIT licensed source code is also available at that location.

5.00
(one vote)


Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.