OpenMPC: Extended OpenMP programming and tuning for GPUs

Seyong Lee, Rudolf Eigenmann

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

165 Scopus citations

Abstract

General-Purpose Graphics Processing Units (GPG-PUs) are promising parallel platforms for high performance computing. The CUDA (Compute Unified Device Architecture) programming model provides improved programmability for general computing on GPGPUs. However, its unique execution model and memory model still pose significant challenges for developers of efficient GPGPU code. This paper proposes a new programming interface, called OpenMPC, which builds on OpenMP to provide an abstraction of the complex CUDA programming model and offers high-level controls of the involved parameters and optimizations. We have developed a fully automatic compilation and user-assisted tuning system supporting OpenMPC. In addition to a range of compiler transformations and optimizations, the system includes tuning capabilities for generating, pruning, and navigating the search space of compilation variants. Our results demonstrate that OpenMPC offers both programmability and tunability. Our system achieves 88% of the performance of the hand-coded CUDA programs.

Original languageEnglish
Title of host publication2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2010
DOIs
StatePublished - 2010
Externally publishedYes
Event2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2010 - New Orleans, LA, United States
Duration: Nov 13 2010Nov 19 2010

Publication series

Name2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2010

Conference

Conference2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2010
Country/TerritoryUnited States
CityNew Orleans, LA
Period11/13/1011/19/10

Fingerprint

Dive into the research topics of 'OpenMPC: Extended OpenMP programming and tuning for GPUs'. Together they form a unique fingerprint.

Cite this