A coding error made Intel GPUs 100 times slower in ray tracing
Intel Linux GPU driver developers have released an update that results in a massive 100X increase in ray tracing performance. It’s something to celebrate, of course. However, on the other hand, the driver was 100 times slower than it should have been due to a memory allocation error. The news comes amid reports that Intel’s shipping drivers for its Arc GPUs are facing issues on Windows akin to “[…]live in the middle of a minefield – watch out, while playing drunkThe company also admitted that Arc’s performance lags behind older APIs, like DX11, on Windows.
Linux-centric news site Phoronix reports that a patch merged into the open-source Intel Mesa Vulkan driver was implemented Thursday by Intel Linux graphics driver engineering stalwart Lionel Landwerlin. The developer ironically commented that the merge request, which already landed in Mesa 22.2, would bring “Like a 100x improvement (no kidding)”. Intel has been working on Vulkan raytracing support since late 2020, but this patch is better late than never.
Even readers who are not (driver) developers will probably be able to figure out the problem with the previous code. Usually the Vulkan driver would ensure that the temporary memory used for the Vulkan ray tracing job would be in local memory, i.e. the very fast graphics memory onboard the discrete GPU.
A line of code was missing, so this memory allocation maintenance task was not defined. So the Vulkan driver would move ray tracing data to slower external system memory and vice versa. Think of the continuous convoluted transfers to this slower memory, dramatically slowing ray tracing performance. It turns out, according to our title, that setting a flag for “ANV_BO_ALLOC_LOCAL_MEM” ensured that VRAM would be used instead, and a 100X performance boost was the result.
Mesa 22.2, which includes the new code, is expected to branch out in the coming days and will be included in a set of other driver improvements, which should reach end users by the end of August.
The story above reminds us of the importance of good drivers to support hardware. Intel’s graphics cards and discrete drivers are admittedly immature, and we may be seeing a lag between the expected early performance of the Arc Alchemist lineup and what is being achieved. In a recent series of official benchmarks, Intel compared the Arc A750 with the GeForce RTX 3060 to show that its card is a “winner”. However, was it originally intended to present the A750 as a hammer to the RTX 3060, or was it aiming higher?
Trying to be optimistic about Intel’s Arc situation, one would hope that GPUs have a lot of potential once driver updates start rolling in.
For more information on Intel Arc, please see our guide to Alchemist Series performance, specs, release dates and more.