SC2020Top-tier venue
CCAMP: an integrated translation and optimization framework for OpenACC and OpenMP
Jacob Lambert, Seyong Lee, Jeffrey S. Vetter, Allen D. Malony
Abstract
these programming challenges in heterogeneous computing. These directive-based approaches allow programmers to provide the compilers with important application characteristics (e.g., parallelism and data sharing) via a set of directives to transfer much of the low-level programming and optimization burdens to the compilers. However, as shown in the following sections, device-specific implementations and varying levels of language support and maturity across compilers make it difficult for the existing directive solutions to achieve the ideal performance and portability promised by these standards.
To address these issues, the authors propose CCAMP, an integrated translation and optimization framework for OpenACC and OpenMP. CCAMP is built on top of the Open Accelerator Research Compiler (OpenARC) [8], and it performs: (1) automatic translations between the two directive models to enable better performance portability by letting programmers choose more mature programming solutions preferred by the target device and (2) automatic optimizations to better map computations to the target device in a way preferred by the back-end compilers on the given device.
The main contributions of this work include:
• the design and implementation of CCAMP Translation, an automatic framework that transforms OpenMP 4+ to OpenACC and vice versa; • the design and implementation of CCAMP Optimization, a general optimization strategy to map computations to devices in a way preferred by the back-end compilers; • an evaluation of the proposed framework across an array of devices (e.g., Intel Xeon CPU, IBM Power 9, Nvidia P100, V100) and compilers (e.g., clang, PGI, XLC, GCC) by using the SPEC Accel Benchmark Suite, two kernel benchmarks, and LULESH 2.0; and • the comparison and evaluation of OpenMP 4+ and Ope-nACC performance variability.
OpenACC and OpenMP are two popular programming models for directive-based high-level heterogeneous computing. Although OpenACC was originally developed as a highlevel alternative to CUDA for GPU programming, because Abstract-Heterogeneous computing and exploration into specialized accelerators are inevitable in current and future supercomputers. Although this diversity of devices is promising for performance, the array of architectures presents programming challenges. High-level programming strategies have emerged to face these challenges, such as the OpenMP offloading model and OpenACC. However, the varying levels of support for these standards within vendor-specific a nd o pen-source t ools, a s well as the lack of performance portability across devices, have prevented the standards from achieving their goals. To address these shortcomings, we present CCAMP, an OpenMP and Ope-nACC interoperable framework. CCAMP provides two primary facilities: language translation between the two standards and device-specific d irective o ptimization w ithin e ach s tandard. We show that by using the CCAMP framework, programmers can easily transplant non-portable code into new ecosystems for new architectures. Additionally, by using CCAMP's device-specific directive optimizations, users can achieve optimized performance across architectures using a single source code.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext f12da211-6d00-4231-b575-4ea3831a8748Related papers
- Static Generation of Efficient OpenMP Offload Data MappingsLuke Marzen, Akash Dutta, Ali JannesariSC 2024 · 4 citations
- Dynamic Detection of Inefficient Data Mapping Patterns in Heterogeneous OpenMP ApplicationsLuke Marzen, Junhyung Shim, Ali JannesariPPoPP 2026
- SYCL++: A Unified Programming Framework for Heterogeneous Supercomputers at ScaleZitao Shen, Yuyang Jin, Kinman Lei, Zixuan Ma et al.HPDC 2026
- Unleashing CPU Potential for Executing GPU Programs Through Compiler/Runtime OptimizationsRuobing Han, Jisheng Zhao, Hyesoon KimMICRO 2024 · 4 citations
- HPAC-Offload: Accelerating HPC Applications with Portable Approximate Computing on the GPUZane Fink, Konstantinos Parasyris, Giorgis Georgakoudis, Harshitha MenonSC 2023 · 3 citations
