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 language | English |
---|---|
Title of host publication | Proceedings of LLVM-HPC 2021 |
Subtitle of host publication | 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 |
Publisher | Institute of Electrical and Electronics Engineers Inc. |
Pages | 12-19 |
Number of pages | 8 |
ISBN (Electronic) | 9781665411349 |
DOIs | |
State | Published - 2021 |
Event | 7th IEEE/ACM Annual Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2021 - St. Louis, United States Duration: Nov 14 2021 → … |
Publication series
Name | Proceedings 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
Conference | 7th IEEE/ACM Annual Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2021 |
---|---|
Country/Territory | United States |
City | St. Louis |
Period | 11/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.
Keywords
- GPU
- LLVM
- MLIR
- OpenACC
- OpenMP
- accelerators
- compiler
- multicore