Project

Clacc

Project Status: Active

OpenACC Support for Clang and LLVM

Clacc Compiler

Description

Clacc is developing open-source, production-quality, standard-conforming OpenACC compiler and runtime 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).

Clacc’s key design feature is that it translates OpenACC to OpenMP in order to build on Clang’s existing OpenMP compiler and runtime support.  Because OpenACC is more descriptive and OpenMP is more prescriptive, this translation can be seen as lowering.  Moreover, the mapping between directives is not simply one-to-one, so sophisticated compiler analysis is required.

Publications and Presentations

  • Clacc: OpenACC Support for Clang and LLVM, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, LLVM Tutorial, ISC, Frankfurt, Germany (June, 2019)
  • Clacc: OpenACC Support for Clang and LLVM, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, HPC Day, Goethe University, Frankfurt, Germany (June, 2019)
  • Clacc 2019: An Update on OpenACC Support for Clang and LLVM, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, EuroLLVM, Brussels, Belgium (April, 2019)
  • Clacc: Translating OpenACC to OpenMP in Clang, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, LLVM-Performance, Washington D.C. (February, 2019)
  • Clacc: Translating OpenACC to OpenMP in Clang, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, LLVM-HPC, Dallas, TX (November, 2018)
  • Clacc: OpenACC Support for Clang and LLVM, Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter, EuroLLVM, Bristol, UK (April, 2018)

Related Projects

Contact

  • Joel E. Denny (Email: dennyje AT ornl DOT gov)