GCC Progressing On OpenMP 5.x, OpenACC 2.7+ GPU Offloading & More AMD Improvements
Siemens continues largely leading the work around accelerator offloading for GCC as a long-time contributor to GCC in this area via their acquisition of Mentor Graphics who in turn had acquired CodeSourcery a decade ago. GPU offloading for GCC hasn't seen nearly the amount of interest that LLVM and LLVM-based compilers have seen with AMD maintaining its official AMDGPU shader compiler back-end there, NVIDIA leveraging LLVM for its compiler stack, Intel's IGC making use of LLVM, and a lot of other work in different GPU spaces happening over there on the LLVM side. But thankfully Siemens engineers continue working to improve this GCC offloading support.
Tobias Burnus, Thomas Schwinge, and Andrew Stubbs presented on the offloading support during the GNU Tools Cauldron. They continue beating away at the OpenACC 2.7 to 3.2 support, OpenMP 5.x features, and then also work on the AMD back-end as well as the NVIDIA NVPTX support.
For GCC 13 they have worked on initial AMD Instinct MI200 support, unified shared memory, more SIMD functionality, and other features. On the NVPTX side they are working on CUDA 11+ support, experimental support for features in higher shader model levels and PTX versions, and other enhancements.
Some of the recent GCC OpenMP/OpenACC features being tackled by Siemens includes unified memory handling, OpenACC worker parallelism for AMD GPUs, code generation optimizations, and a lot of bug fixing.
Those wishing to learn more about the OpenMP/OpenACC offloading work being tackled by Siemens for GCC can see this slide deck from the GNU Tools Cauldron 2022.