Flacc: Towards OpenACC support for Fortran in the LLVM Ecosystem

Valentin Clement, Jeffrey S. Vetter

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

4 Scopus citations

Abstract

OpenACC is a directive-based programming model for heterogeneous accelerators initially launched in 2010 to provide a portable solution at a level of abstraction above OpenCL, CUDA, and other lower-level programming models. Various implementations of OpenACC for C, C++, and Fortran exist; however, only one open-source, production implementation of OpenACC for Fortran does exist. Moreover, most contemporary compiler tool chains for heterogeneous computing are based on LLVM. This lack of support poses a serious risk for high-performance computing application developers targeting GPUs and other accelerators, and it limits the ability of the community to experiment with, extend, and contribute to the OpenACC specification and open-source implementation itself. To address this gap, we have designed and begun implementing Flacc: An effort funded by the US Exascale Computing Project to develop production OpenACC compiler support for Fortran based on Flang within the LLVM ecosystem. In this paper, we describe the Flacc goals, initial design and prototype, and challenges that we have encountered so far in our prototyping efforts. Flacc is implemented as a MLIR dialect in the Flang Fortran front end in LLVM. The Flacc front end currently supports OpenACC version 3.1, and the Flacc run time is currently under development and relies on contributions from the Clacc project. Current contributions to Flacc are available in the main {\color{Green}{\mathbf{LLVM}}\;{\mathbf{repository}}}.1

Original languageEnglish
Title of host publicationProceedings of LLVM-HPC 2021
Subtitle of host publication7th Annual Workshop on the LLVM Compiler Infrastructure in HPC, Held in conjunction with SC 2021: The International Conference for High Performance Computing, Networking, Storage and Analysis
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages12-19
Number of pages8
ISBN (Electronic)9781665411349
DOIs
StatePublished - 2021
Event7th IEEE/ACM Annual Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2021 - St. Louis, United States
Duration: Nov 14 2021 → …

Publication series

NameProceedings of LLVM-HPC 2021: 7th Annual Workshop on the LLVM Compiler Infrastructure in HPC, Held in conjunction with SC 2021: The International Conference for High Performance Computing, Networking, Storage and Analysis

Conference

Conference7th IEEE/ACM Annual Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2021
Country/TerritoryUnited States
CitySt. Louis
Period11/14/21 → …

Funding

This manuscript has been authored by UT-Battelle, LLC, under contract DE-AC05-00OR22725with the US Department of Energy (DOE), Office of Science. This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration. This research used resources of the Experimental Computing Laboratory at the Oak Ridge National Laboratory, which is supported by the US Department of Energy’s Office of Science under Contract No. DE-AC05-00OR22725.

FundersFunder number
U.S. Department of Energy
Office of Science17-SC-20-SC, DE-AC05-00OR22725
National Nuclear Security Administration

    Keywords

    • GPU
    • LLVM
    • MLIR
    • OpenACC
    • OpenMP
    • accelerators
    • compiler
    • multicore

    Fingerprint

    Dive into the research topics of 'Flacc: Towards OpenACC support for Fortran in the LLVM Ecosystem'. Together they form a unique fingerprint.

    Cite this