GPUOpen On Reducing Vulkan Overhead With Volk, Possible 1~5% Savings
Written by Michael Larabel in Vulkan on 26 April 2018 at 02:05 PM EDT. 19 Comments
VULKAN --
A guest post on AMD's GPUOpen blog outlines the overhead issues with using the Vulkan loader library and possible performance advantages to using vkGetDeviceProcAddr or more easily via a little heard of project called Volk.

While the generic Vulkan loader library is great for allowing multiple Vulkan ICD drivers to happily co-exist on the same system without interference and allowing for features like Vulkan layers, it does add a bit of overhead whenever making any Vulkan API calls that need to go through it and in turn passed onto the drivers. Since the Vulkan debut we've seen differing opinions about whether its performance negligible or not from driver developers to Vulkan game/application developers with some app/game developers trying to avoid the loader/dispatch code and use the Vulkan driver calls directly.

Arseny Kapoulkine of Roblox wrote a guest post on the GPUOpen blog today about reducing the Vulkan API call overhead. The most common approach to now for lowering that Vulkan API overhead of going through the loader library is by using vkGetDeviceProcAddr for obtaining a function pointer to what's doing the actual work and thereby bypassing the dispatch work on subsequent calls.

What Arseny Kapoulkine has been working on is the Volk project as an MIT-licensed Vulkan meta-loder. By including the C file with your Vulkan project and including its Volk header file as a replacement to vulkan.h along with other slight changes to the code, it allows for dynamically loading entry-points to use Vulkan without having to link against the common Vulkan loader and using the entry-points directly from the driver.

You can read more about the Vulkan API call overhead on GPUOpen.com or visit the Volk GitHub site if you are potentially interested in the code.

As far as the advantages, Kapoulkine attributes the normal Vulkan overhead at "1-5% for typical Vulkan applications."
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Related Vulkan News
Popular News This Week