Rewritten NIR Code For Old Radeon "R600" Linux Driver Improves Performance In 2022
The Radeon HD 7000 "GCN" series that ushered in the modern RadeonSI Gallium3D driver for Linux desktop users is now a decade old. However, thanks to being open-source, the R600 driver for Radeon HD 2000 through HD 6000 series for these much older GPUs is still seeing some attention by community developers. AMD developers have long turned their attention away from this vintage open-source driver work but the code continues to be worked on by Mesa developers and making some interesting improvements so many years later.
Recently there was work toward better GPU compute for R600g and the activity to report on this week is the rewritten NIR back-end being posted for review. One of the few community developers still paying attention to the R600 Gallium3D driver, Gert Wollny, has been rewriting the NIR back-end for this driver over the past several months. NIR, of course, is Mesa's modern intermediate representation (IR) that is more modern and in better shape than the conventional Gallium3D TGSI IR.
In addition to better performance, the Radeon HD 6900 series on this open-source driver will now see proper FP64 usage for R600g with this new NIR back-end.
This rewritten NIR back-end adds a back-end optimizer and scheduler. A few regressions are known at this point but by far this should ultimately deliver better performance than the current R600g driver code. In addition to the better performance it also allows proper FP64 hardware support for the Radeon HD 6900 "Cayman" GPUs.
The Radeon HD 5000 series launched in 2009 but now in 2022 is still seeing OpenGL Linux driver improvements by the community thanks to the code being open-source.
While the R600 driver goes back to the HD 2000 series, this rewritten NIR back-end has only been designed and tested for the latter Radeon HD 5000 and HD 6000 series.
We'll see if this rewritten NIR code is buttoned up in time for Mesa 22.2's release next quarter or is dragged out further pending reviews/testing. Looks like I'll need to dust off some of my Radeon HD 5000/6000 series cards for some 2022 benchmarking once this work lands.