Significant Performance Improvements For RadeonSI LLVM With New Patches

Tom has landed some measurable RadeonSI LLVM performance improvements to his LLVM branch that provided important code generation features for Southern Islands GPUs and newer (Radeon HD 7000 series and newer). The important code generation features now implemented in his branched AMDGPU LLVM back-end are machine scheduling and sub-reg liveness support. With the current machine scheduler, the schedule model is not yet completed and could be improved further, according to Tom, but the results are already positive.
The LLVM improvements will yield better performance out of the AMD RadeonSI Gallium3D driver in Mesa, particularly for OpenCL compute. Stellard said with LuxMark's Luxball OpenCL demo is around 60% faster on his "Bonaire" GPU. In other OpenCL tests he's seeing the compute performance faster by 10~25%. Tom hasn't yet spent much time looking to see how the OpenGL performance is affected, but he doesn't expect the graphics performance to be up by as much as the OpenCL speed.
Tom shared the LLVM performance patches via a blog post today. LLVM 3.6 is being branched soon so hopefully Stellard will end up committing these patches in time for appearing in LLVM 3.6.0 rather than having to wait for LLVM 3.6.1 or later.
It's great to see the open-source AMD Linux stack already off to a good start in 2015 given the incredible AMD OSS improvements made in 2014 and moving closer to performance parity with AMD Catalyst over the past year of improvements to the Linux kernel Radeon DRM, Mesa/Gallium3D, and LLVM.
24 Comments