Hi everyone,
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:
https://gcc.gnu.org/wiki/SummerOfCode
There are three main goals for this project.
- Add support for the Fortran 2018 locality specifiers (
LOCAL
,LOCAL_INIT
,SHARED
) and theDEFAULT
clause in the GCC Fortran parser. - Add support for the upcoming Fortran 202X
REDUCTION
clause in the GCC Fortran parser. - Implement both CPU-based and GPU-based parallelization of
DO CONCURRENT
as controlled by the new-fdo-concurrent=…
compiler flag. The possible options to this compiler flag are:-
serial
- no parallelization. -
parallel
-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:
https://gcc.gnu.org/pipermail/gcc/2022-April/238581.html
https://gcc.gnu.org/pipermail/fortran/2022-April/057770.html
What do y’all think about this?