Project Status: Active
OpenACC Support for Clang and LLVM

Description
Clacc is developing open-source, production-quality, standard-conforming OpenACC compiler, runtime, and profiling support by extending Clang and LLVM.
OpenACC support in Clang and LLVM will facilitate the programming of GPUs and other accelerators in DOE applications, and it will provide a popular compiler platform on which to perform research and development for related optimizations and tools (e.g., static analyzers, debuggers, editor extensions).
A key Clacc design decision is to translate OpenACC to OpenMP in order to build upon the OpenMP support being developed for Clang and LLVM. A benefit of this design is support for two compilation modes: traditional compilation mode translates OpenACC source to an executable, and source-to-source mode translates OpenACC source to OpenMP source.
Source Code
Clacc is publicly available on github as part of the ORNL-maintained LLVM DOE Fork.
Publications
- Analysis of Validating and Verifying OpenACC Compilers 3.0 and Above, Aaron Jarmusch, Aaron Liu, Christian Munley, Daniel Horta, Vaidhyanathan Ravichandran, Joel Denny, Sunita Chandrasekaran, WACCPD, Dallas, TX, USA (November, 2022).
- Clacc - Open Source OpenACC Compiler and Source Code Translation Project, Rob Farber, insideHPC (March 2021).
- OpenACC Profiling Support for Clang and LLVM using Clacc and TAU, Camille Coti, Joel E. Denny, Kevin Huck, Seyong Lee, Allen D. Malony, Sameer Shende, and Jeffrey S. Vetter, ProTools, GA, USA (November 2020)
- Clacc: Translating OpenACC to OpenMP in Clang, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, LLVM-HPC, Dallas, TX (November, 2018)
Related Projects
- PROTEAS: PROgramming Toolchain for Emerging Architectures and Systems
- OpenACC: Portable directive-based programming model for heterogeneous accelerators
- The LLVM Compiler Infrastructure
Contact
- Joel E. Denny (Email: dennyje AT ornl DOT gov)
Last Updated: January 3, 2023 - 6:39 pm