Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures
Abstract
Accelerator-based heterogeneous computing is gaining momentum in the high-performance computing arena. However, the increased complexity of heterogeneous architectures demands more generic, high-level programming models. OpenACC is one such attempt to tackle this problem. Although the abstraction provided by OpenACC offers productivity, it raises questions concerning both functional and performance portability. In this article, the authors propose HeteroIR, a high-level, architecture-independent intermediate representation, to map high-level programming models, such as OpenACC, to heterogeneous architectures. They present a compiler approach that translates OpenACC programs into HeteroIR and accelerator kernels to obtain OpenACC functional portability. They then evaluate the performance portability obtained by OpenACC with their approach on 12 OpenACC programs on Nvidia CUDA, AMD GCN, and Intel Xeon Phi architectures. They study the effects of various compiler optimizations and OpenACC program settings on these architectures to provide insights into the achieved performance portability.
- Authors:
-
- Purdue Univ., West Lafayette, IN (United States)
- Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
- Publication Date:
- Research Org.:
- Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
- Sponsoring Org.:
- USDOE Office of Science (SC)
- OSTI Identifier:
- 1265740
- Grant/Contract Number:
- AC05-00OR22725
- Resource Type:
- Accepted Manuscript
- Journal Name:
- IEEE Micro
- Additional Journal Information:
- Journal Volume: 35; Journal Issue: 4; Journal ID: ISSN 0272-1732
- Publisher:
- IEEE
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS AND COMPUTING
Citation Formats
Sabne, Amit J., Sakdhnagool, Putt, Lee, Seyong, and Vetter, Jeffrey S. Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures. United States: N. p., 2015.
Web. doi:10.1109/MM.2015.73.
Sabne, Amit J., Sakdhnagool, Putt, Lee, Seyong, & Vetter, Jeffrey S. Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures. United States. https://doi.org/10.1109/MM.2015.73
Sabne, Amit J., Sakdhnagool, Putt, Lee, Seyong, and Vetter, Jeffrey S. Mon .
"Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures". United States. https://doi.org/10.1109/MM.2015.73. https://www.osti.gov/servlets/purl/1265740.
@article{osti_1265740,
title = {Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures},
author = {Sabne, Amit J. and Sakdhnagool, Putt and Lee, Seyong and Vetter, Jeffrey S.},
abstractNote = {Accelerator-based heterogeneous computing is gaining momentum in the high-performance computing arena. However, the increased complexity of heterogeneous architectures demands more generic, high-level programming models. OpenACC is one such attempt to tackle this problem. Although the abstraction provided by OpenACC offers productivity, it raises questions concerning both functional and performance portability. In this article, the authors propose HeteroIR, a high-level, architecture-independent intermediate representation, to map high-level programming models, such as OpenACC, to heterogeneous architectures. They present a compiler approach that translates OpenACC programs into HeteroIR and accelerator kernels to obtain OpenACC functional portability. They then evaluate the performance portability obtained by OpenACC with their approach on 12 OpenACC programs on Nvidia CUDA, AMD GCN, and Intel Xeon Phi architectures. They study the effects of various compiler optimizations and OpenACC program settings on these architectures to provide insights into the achieved performance portability.},
doi = {10.1109/MM.2015.73},
journal = {IEEE Micro},
number = 4,
volume = 35,
place = {United States},
year = {Mon Jul 13 00:00:00 EDT 2015},
month = {Mon Jul 13 00:00:00 EDT 2015}
}
Web of Science
Figures / Tables:
Figures / Tables found in this record: