AMD GCN Back-End In GCC Compiler Adds "-march=gfx906" Option For Vega 20

The Radeon GCN compiler back-end was merged months ago for GCC 9 as the work being done by CodeSourcery / Mentor Graphics under contract for AMD. That code is already being used within the company's CodeBench Lite AMD software and with time is expected to become useful in its own right within GCC.
But for GCC 9 and right now in GCC 10, the GCN back-end can only handle running single-threaded programs and not yet any fancy GPU offloading from the likes of OpenMP or OpenACC interfaces and to exploit the parallelism of today's graphics cards. There's improvements going into GCC 10 and perhaps by the official GCC 10.1 stable release next year we'll find this OpenMP/OpenACC parallel programming support in place for Radeon GPUs.
Besides the limited working scope right now for the AMD GCN back-end in GCC, the hardware spectrum has been limited. The developers working on this back-end have just been focusing on the support for Fiji and Vega 10, but that's slowly expanding. Now within GCC 10 is the -march=gfx906 target for Vega 20.
Vega 20 support is being prepped for this back-end as the 7nm Vega GPUs shipping in recent months. We'll wonder though how long it takes to see Navi support in this back-end and could be a sign of how serious AMD/Mentor is about this GCC support. The LLVM AMDGPU compiler back-end has already been seeing the GFX1010/Navi support as that's needed for the RadeonSI Gallium3D driver and other graphics components as the shader compiler path.
Add A Comment