CLACC: Translating OpenACC to OpenMP in clang

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

22 Scopus citations

Abstract

OpenACC was launched in 2010 as a portable programming model for heterogeneous accelerators. Although various implementations already exist, no extensible, open-source, production-quality compiler support is available to the community. This deficiency poses a serious risk for HPC application developers targeting GPUs and other accelerators, and it limits experimentation and progress for the OpenACC specification. To address this deficiency, Clacc is a recent effort funded by the US Exascale Computing Project to develop production OpenACC compiler support for Clang and LLVM. A key feature of the Clacc design is to translate OpenACC to OpenMP to build on Clang's existing OpenMP compiler and runtime support. In this paper, we describe the Clacc goals and design. We also describe the challenges that we have encountered so far in our prototyping efforts, and we present some early performance results.

Original languageEnglish
Title of host publicationProceedings of LLVM-HPC 2018
Subtitle of host publication5th Workshop on the LLVM Compiler Infrastructure in HPC, Held in conjunction with SC 2018: The International Conference for High Performance Computing, Networking, Storage and Analysis
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages18-29
Number of pages12
ISBN (Electronic)9781728101880
DOIs
StatePublished - Jul 2 2018
Event5th IEEE/ACM Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2018 - Dallas, United States
Duration: Nov 12 2018 → …

Publication series

NameProceedings of LLVM-HPC 2018: 5th Workshop on the LLVM Compiler Infrastructure in HPC, Held in conjunction with SC 2018: The International Conference for High Performance Computing, Networking, Storage and Analysis

Conference

Conference5th IEEE/ACM Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2018
Country/TerritoryUnited States
CityDallas
Period11/12/18 → …

Funding

Abstract—OpenACC was launched in 2010 as a portable programming model for heterogeneous accelerators. Although various implementations already exist, no extensible, open-source, production-quality compiler support is available to the community. This deficiency poses a serious risk for HPC application developers targeting GPUs and other accelerators, and it limits experimentation and progress for the OpenACC specification. To address this deficiency, Clacc is a recent effort funded by the US Exascale Computing Project to develop production OpenACC compiler support for Clang and LLVM. A key feature of the Clacc design is to translate OpenACC to OpenMP to build on Clang’s existing OpenMP compiler and runtime support. In this paper, we describe the Clacc goals and design. We also describe the challenges that we have encountered so far in our prototyping efforts, and we present some early performance results.

FundersFunder number
U.S. Department of Energy
Office of Science17-SC-20-SC
National Nuclear Security Administration

    Keywords

    • GPU
    • LLVM
    • OpenACC
    • OpenMP
    • accelerators
    • compiler
    • multicore
    • source-to-source translation

    Fingerprint

    Dive into the research topics of 'CLACC: Translating OpenACC to OpenMP in clang'. Together they form a unique fingerprint.

    Cite this