The Radeon Machine Scheduler Will Soon Come To AMDGPU LLVM
Months after Axel Davy originally posted his patch-set for the SI machine scheduler to enhance the performance of AMD GCN GPUs on the open-source driver, it looks like the code will soon land in the AMDGPU LLVM back-end.
Axel posted his work on this Southern Islands machine scheduler months ago for AMD's LLVM GPU back-end. As tests showed back in August, this scheduler helps significantly boost the performance for certain workloads. One of the Phoronix readers that tested out this scheduler at the time exclaimed, "The si scheduler is such a huge performance boost! Not only it is faster, but now radeonsi is faster than Catalyst in *all* tests, sometimes by a wide margin!"
This SI machine scheduler has been sitting under LLVM review for a while and only last month did it start getting looked at by one of the new open-source AMD Linux developers, Nicolai Hähnle. Nicolai Hähnle has been trying to understand the scheduler and his most recent comment from yesterday explained:
Axel posted his work on this Southern Islands machine scheduler months ago for AMD's LLVM GPU back-end. As tests showed back in August, this scheduler helps significantly boost the performance for certain workloads. One of the Phoronix readers that tested out this scheduler at the time exclaimed, "The si scheduler is such a huge performance boost! Not only it is faster, but now radeonsi is faster than Catalyst in *all* tests, sometimes by a wide margin!"
This SI machine scheduler has been sitting under LLVM review for a while and only last month did it start getting looked at by one of the new open-source AMD Linux developers, Nicolai Hähnle. Nicolai Hähnle has been trying to understand the scheduler and his most recent comment from yesterday explained:
I'm still only lukewarm to the scheduler because the blocks business seems a bit magical, and it would be nice to have a proper explanation why this is better and (more importantly) why the same cannot be achieved by improving on the existing scheduler with less of a "change the whole world" approach.Hopefully this will land in the next few days prior to the LLVM 3.8 branching so that this feature (which is just enabled when setting --misched=si) will be found in next month's release of LLVM 3.8.0.
That said, the evidence is clearly that there are graphics performance improvements to be had with this scheduler, which I don't think we should keep from people. Furthermore, the change is low risk because it's nice and modular.
So all in all, I believe this should be accepted, and I will commit it soon.
7 Comments