I’m submitting a proposal for GSoC 2022 to work on
DO CONCURRENT GPU offloading support in GCC. The original project idea is listed here:
There are three main goals for this project.
- Add support for the Fortran 2018 locality specifiers (
SHARED) and the
DEFAULTclause in the GCC Fortran parser.
- Add support for the upcoming Fortran 202X
REDUCTIONclause in the GCC Fortran parser.
- Implement both CPU-based and GPU-based parallelization of
DO CONCURRENTas controlled by the new
-fdo-concurrent=…compiler flag. The possible options to this compiler flag are:
serial- no parallelization.
pthreads-based CPU parallelization similar to/based on the existing '-ftree-parallelize-loops=n` compiler flag.
openmp- CPU parallelization using the OpenMP programming model.
openmp-target- GPU offloading using the OpenMP programming model.
openacc- GPU offloading using the OpenACC programming model.
Personally, I want to learn not only to break compilers, but also fix them.
The email to the GCC mailing lists can be accessed here:
What do y’all think about this?