OpenMPC: Extended OpenMP Programming and Tuning for GPUs
SESSION: Programming Models
EVENT TYPE: Paper, Best Student Paper (BSP) Finalist
TIME: 1:30PM - 2:00PM
SESSION CHAIR: Kenjiro Taura
AUTHOR(S):Seyong Lee, Rudolf Eigenmann
ABSTRACT: General-Purpose Graphics Processing Units (GPGPUs) 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.