AMD RadeonSI Driver Now Defaults To Enabling ACO For Faster Performance
- Reference: 0001587812
- News link: https://www.phoronix.com/news/RadeonSI-ACO-Default-Mesa-26.0
- Source link:
While the RADV Vulkan driver has long been using the AMD Compiler "ACO" back-end by default rather than AMDGPU LLVM, the RadeonSI driver has long been a holdout. The ACO compiler support for RadeonSI has evolved nicely into shape in recent months and now today the default change finally happened -- which will be found in the Mesa 26.0 release due out in mid-Q1.
Marek argued the merits of ACO by default:
"NIR+ACO is the best SSA-based shader compiler for AMD GPUs that exists.
There are many reasons why NIR+ACO is better than LLVM, and I have a long list that I've collected over the years, but the major ones are better GPU performance (faster GPU memory access thanks to better clauses and scheduling, a lot less SGPR/VGPR spilling, better loop support, slightly smaller shader binaries), 8x lower shader compile times, and smaller memory footprint of the IR.
It also shows that NIR is a mature SSA-based shader compiler that helps drivers generate optimized code very quickly.
And most importantly, radeonsi has slightly better Viewperf performance with NIR+ACO than LLVM, and that's difficult to ignore."
The change is [1]merged while the AMD_DEBUG=usellvm environment variable can be used instead if wanting to fallback to the LLVM back-end instead.
Quite an achievement considering that ACO was started outside the confines of AMD over at Valve. New RadeonSI comparison benchmarks coming up soon on Phoronix.
[1] https://cgit.freedesktop.org/mesa/mesa/commit/?id=e26c28f311cc5416f6c7f5b09a53ca2b14dfb955