Future Work On The AMD GPU LLVM Back-End
Earlier this month there was a presentation by AMD's Tom Stellard at the LLVM Developers' Meeting about the work being done on the Radeon GPU LLVM back-end.
The presentation was entitled "A Detailed Look at the R600 Backend" and was a low-level look at this LLVM back-end for generating Radeon-specific ISA out of GLSL and OpenCL code. A majority of the presentation isn't of interest to most Phoronix readers as it's a low-level look at the back-end and the intended audience was compiler developers. The slides/video recording aren't yet available but Tom Stellard sent over his slide-deck this morning so here's a few tid-bits from the presentation.
As far as why AMD went with an LLVM back-end for their graphics driver was said to be for a reduction in development time and better testing coverage.
Future work to be done includes support for new hardware, full support for GPU programming languages (namely GL Shading Language and OpenCL C), work out other ideas, and have more GPU back-ends within LLVM. The other ideas included working on an LLVM MachineScheduler for AMD's "GCN" hardware, common intrinsics for GLSL (potentially with LunarGLASS), an LLVM SelectionDAG replacement, back-end error reporting support, and performance improvements.
For those not paying attention to other Phoronix articles, there's been a lot of work lately on R600 LLVM. With LLVM 3.4 it should be in fairly good shape for Radeon HD 7000 series GPUs, there's now GL3 GLSL support with the LLVM back-end, some basic OpenCL workloads like bit-coin mining and Pyrit are starting to run, etc. LLVM 3.4 with Mesa 10.0 should make open-source Radeon OpenCL support okay in a primitive form for early adopters while Fedora 21 should have great OpenCL support.
Stay tuned for more coverage when the rest of the slides and video recordings are available from this month's LLVM Developers' Meeting.
The presentation was entitled "A Detailed Look at the R600 Backend" and was a low-level look at this LLVM back-end for generating Radeon-specific ISA out of GLSL and OpenCL code. A majority of the presentation isn't of interest to most Phoronix readers as it's a low-level look at the back-end and the intended audience was compiler developers. The slides/video recording aren't yet available but Tom Stellard sent over his slide-deck this morning so here's a few tid-bits from the presentation.
As far as why AMD went with an LLVM back-end for their graphics driver was said to be for a reduction in development time and better testing coverage.
Future work to be done includes support for new hardware, full support for GPU programming languages (namely GL Shading Language and OpenCL C), work out other ideas, and have more GPU back-ends within LLVM. The other ideas included working on an LLVM MachineScheduler for AMD's "GCN" hardware, common intrinsics for GLSL (potentially with LunarGLASS), an LLVM SelectionDAG replacement, back-end error reporting support, and performance improvements.
For those not paying attention to other Phoronix articles, there's been a lot of work lately on R600 LLVM. With LLVM 3.4 it should be in fairly good shape for Radeon HD 7000 series GPUs, there's now GL3 GLSL support with the LLVM back-end, some basic OpenCL workloads like bit-coin mining and Pyrit are starting to run, etc. LLVM 3.4 with Mesa 10.0 should make open-source Radeon OpenCL support okay in a primitive form for early adopters while Fedora 21 should have great OpenCL support.
Stay tuned for more coverage when the rest of the slides and video recordings are available from this month's LLVM Developers' Meeting.
3 Comments