Show Your Support: Did you know that you can get Phoronix Premium for under $4 per month? Try it today to view our site ad-free, multi-page articles on a single page, and more while the proceeds allow us to write more Linux hardware reviews. At the very least, please disable your ad-blocker.
HSA IL Front-End Proposed For GCC
The HSA Foundation has been maintaining their repository with the HSA IL front-end on top of GCC 4.9 while now the developers are hoping to see this code mainlined. The development appears to be done primarily by Parmance, a company specializing in parallel performance engineering.
Pekka Jääskeläinen explained of this HSA front-end to GCC, "This patch set adds a BRIG (HSAIL) frontend. It can be used as a core for an HSAIL finalizer implementation for processors with gcc backends. It is a bit unusual frontend as the consumed format is a binary representation. The textual HSAIL can be compiled to it with a separate assembler. The frontend has been mostly tested with the HSA PRM conformance suite which it now passes. The accompanied GENERIC-scanning test suite is supposed to be only a smoke test. libhsail-rt implements HSAIL specific builtins and includes a simple runtime that implements SPMD execution via either Pth-based fibers or loops to execute multiple work-item work groups without SPMD/SIMD-default hardware."
This GCC "BRIG" front-end for HSA's intermediate language adds over 42,000 lines of code to the GNU Compiler Collection tree. Hopefully this latest GCC HSA feature will land well in time for next year's release of GCC 7, which should be the case considering the amount of time to the next major release. This work is about GCC consuming HSA IL on the front-end while found in GCC 6 was support on the back-end for generating HSA IL from OpenMP constructs when configured for the HSA offload target. A GCC6 libgomp plugin then runs the HSA GPU kernels on supported hardware via the HSA runtime.
Those wanting to pour through the code now can find it on gcc-patches.