AMD R600 LLVM Back-End Called For Inclusion

Written by Michael Larabel in AMD on 26 March 2012 at 01:10 PM EDT. 53 Comments
AMD
Tom Stellard of AMD has called upon the LLVM developers to include the R600 GPU back-end into the LLVM project, which is the code for generating compute and graphics shaders inside the LLVM compiler infrastructure for targeting Radeon HD 2000 through HD 6000 series graphics processors.

For months Stellard has been working on an LLVM back-end for the Radeon Gallium3D driver as they worked to bring up OpenCL support over their open-source graphics driver. They now have Radeon Gallium3D OpenCL working and are working towards mainlining the respective components.

This back-end does leverage the AMD IL code generator for LLVM that was open-sourced last December. This R600 LLVM back-end for R600 through Northern Islands GPUs is now in a state for including into upstream LLVM, Tom Stellard believes. "The r600 backend is being developed as a part of the Open Source compute stack in Mesa, which uses the Gallium API. It uses large portions of the AMDIL backend which was open-sourced last December and you'll notice the TargetMachine for this backend (AMDGPUTargetMachine) is a sub-class of AMDILTargetMachine."

In Tom's email this morning to LLVM developers he also mentions:

- They are currently working on an LLVM back-end for their GCN-based Radeon HD 7000 "Southern Islands" GPUs and are also looking to get that into LLVM as soon as possible when the code has been cleared for release.

- All of AMD's code for this is under a BSD license, but the AMD IL code has a clause concerning US export laws for where this can be utilized. AMD hopes this won't cause a problem for integration into the LLVM tree.

- Tom is wondering about any other steps to land this R600 back-end in LLVM or what other changes are required. "My top priority is to get the backend into the LLVM tree, so when you provide feedback if you could be clear about what changes are needed to get the backend into the tree versus what changes are just general improvements, I would appreciate it."

This email announcing the R600 LLVM back-end for inclusion was just sent minutes ago, so there's not yet any responses from the upstream LLVM developers. Hopefully they will be willing to take this R600 back-end soon since LLVM 3.1 is set for release in May.

In terms of the rest of the OpenCL Gallium3D stack, thanks to the work by AMD as well as those within the Nouveau driver camp, the open-source OpenGL support is on approach for landing in mainline. The first of the Gallium3D OpenCL infrastructure patches were sent into the mailing list last week. The Clover (OpenCL) state tracker also needs to land. But what's not yet ready for merging at the moment is the actual R600g and Nouveau driver implementations of the Gallium3D compute infrastructure. The driver-specific portions of the GPGPU computing code is still considered immature at this point -- years after the OpenCL 1.0 specification was ratified.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week