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.
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.
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.