Clacc: OpenACC for C/C++ in Clang
Journal Article
·
· International Journal of High Performance Computing Applications
- Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
- Universidad Politecnica de Cataluña, Barcelona (Spain)
The Clacc project has developed OpenACC compiler, runtime, and profiling interface support for C/C++ by extending Clang and LLVM. A key Clacc design feature is that it translates OpenACC to OpenMP to leverage the OpenMP offloading support that is actively being developed for Clang and LLVM. A benefit of this design is support for two compilation modes: traditional compilation mode produces a binary, and source-to-source mode produces OpenMP source. Clacc has been deployed on Oak Ridge National Laboratory’s (ORNL’s) Frontier, on which Clacc is the only OpenACC implementation for C/C++. Clacc supports x86_64, POWER9, AMD GPUs, and NVIDIA GPUs. Clacc’s OpenACC profiling interface support has been integrated with TAU, which is also deployed on Frontier. While Clacc has always supported C as a base language, Clacc also has increasing C++ support, including support for Kokkos’s OpenACC back end. Clacc itself is hosted publicly on GitHub. In this paper, we describe Clacc’s design and mapping from OpenACC directives to OpenMP. We also present a performance evaluation on ORNL’s Frontier (AMD MI250x GPU offload) and Argonne National Laboratory’s (ANL’s) Polaris (NVIDIA A100 GPU offload) for various SPEC ACCEL and Kokkos OpenACC back end benchmarks.
- Research Organization:
- Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
- Sponsoring Organization:
- USDOE National Nuclear Security Administration (NNSA); USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR). Scientific Discovery through Advanced Computing (SciDAC)
- Grant/Contract Number:
- AC05-00OR22725
- OSTI ID:
- 2438826
- Journal Information:
- International Journal of High Performance Computing Applications, Journal Name: International Journal of High Performance Computing Applications Vol. 0; ISSN 1094-3420
- Publisher:
- SAGECopyright Statement
- Country of Publication:
- United States
- Language:
- English
OpenACC Profiling Support for Clang and LLVM using Clacc and TAU
|
conference | November 2020 |
OpenACC to FPGA: A Framework for Directive-Based High-Performance Reconfigurable Computing
|
conference | May 2016 |
CLACC: Translating OpenACC to OpenMP in Clang
|
conference | November 2018 |
Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures
|
journal | July 2015 |
KokkACC: Enhancing Kokkos with OpenACC
|
conference | November 2022 |
OpenARC: open accelerator research compiler for directive-based, efficient heterogeneous computing
|
conference | January 2014 |
The Tau Parallel Performance System
|
journal | May 2006 |
Similar Records
Clacc: Translating OpenACC to OpenMP in Clang
Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes
Performance-Portable GPU Acceleration of the EFIT Tokamak Plasma Equilibrium Reconstruction Code
Conference
·
Thu Nov 01 00:00:00 EDT 2018
·
OSTI ID:1489555
Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes
Conference
·
Mon May 01 00:00:00 EDT 2023
·
OSTI ID:1994693
Performance-Portable GPU Acceleration of the EFIT Tokamak Plasma Equilibrium Reconstruction Code
Conference
·
Sat Nov 11 23:00:00 EST 2023
· Proceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis
·
OSTI ID:2477210