Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

OpenACC Profiling Support for Clang and LLVM using Clacc and TAU

Conference ·
OSTI ID:1771865
Since its launch in 2010, OpenACC has evolved into one of the most widely used portable programming models for accelerators on HPC systems today. Clacc is a project funded by the US Exascale Computing Project (ECP) to bring OpenACC support for C and C++ to the popular Clang and LLVM compiler infrastructure. In this paper, we describe Clacc's support for the OpenACC Profiling Interface, a critical component of the OpenACC specification that standardizes an interface that profiling tools and libraries can depend upon across OpenACC implementations. As part of Clacc's general strategy to build OpenACC support upon OpenMP, we describe how Clacc builds OpenACC Profiling Interface support upon an extended version of OMPT. We then describe how a major profiling and tracing toolkit within ECP, the TAU Performance System, takes advantage of this support. We also describe TAU's selective instrumentation support for OpenACC. Finally, using Clacc and TAU, we present example visualizations for several SPEC ACCEL OpenACC benchmarks running on an IBM AC922 node, and we show that the associated performance overhead is negligible.
Research Organization:
Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
Sponsoring Organization:
USDOE; USDOE Office of Science (SC)
DOE Contract Number:
AC05-00OR22725
OSTI ID:
1771865
Country of Publication:
United States
Language:
English

Similar Records

Clacc: OpenACC for C/C++ in Clang
Journal Article · Thu Jun 13 20:00:00 EDT 2024 · International Journal of High Performance Computing Applications · OSTI ID:2438826

Clacc: Translating OpenACC to OpenMP in Clang
Conference · Thu Nov 01 00:00:00 EDT 2018 · OSTI ID:1489555

Evaluating Performance Portability of Accelerator Programming Models using SPEC ACCEL 1.2 Benchmarks
Conference · Sun Jul 01 00:00:00 EDT 2018 · OSTI ID:1468172

Related Subjects