Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures

Amit Sabne, Putt Sakdhnagool, Seyong Lee, Jeffrey S. Vetter

Research output: Contribution to journalArticlepeer-review

10 Scopus citations

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.

Original languageEnglish
Article number7155420
Pages (from-to)48-58
Number of pages11
JournalIEEE Micro
Volume35
Issue number4
DOIs
StatePublished - Jul 1 2015

Keywords

  • Compilers
  • HeteroIR
  • Heterogeneous (hybrid) systems
  • Measurements
  • Remove Hybrid
  • Runtime environments

Fingerprint

Dive into the research topics of 'Understanding Portability of a High-Level Programming Model on Contemporary Heterogeneous Architectures'. Together they form a unique fingerprint.

Cite this