GSoC 2022: Accelerating Fortran DO CONCURRENT in GCC

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.

  1. Add support for the Fortran 2018 locality specifiers (LOCAL, LOCAL_INIT, SHARED) and the DEFAULT clause in the GCC Fortran parser.
  2. Add support for the upcoming Fortran 202X REDUCTION clause in the GCC Fortran parser.
  3. 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?

14 Likes

@wyphan , that’s absolutely brilliant! Hopefully many readers with compiler developer experience can provide you with useful and actionable technical feedback that helps you with your specific project ideas and proposal, but from my perspective I can’t cheer you enough on your initiative and effort toward this!

1 Like