OpenMPC: Extended OpenMP Programming and Tuning for GPUs
Sch. of ECE, Purdue Univ. West Lafayette, West Lafayette, IN, USA
International Conference for High Performance Computing, Networking, Storage and Analysis (SC), 2010
@conference{lee2010openmpc,
title={OpenMPC: Extended OpenMP programming and tuning for GPUs},
author={Lee, S. and Eigenmann, R.},
booktitle={Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis},
pages={1–11},
year={2010},
organization={IEEE Computer Society}
}
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.
April 23, 2011 by hgpu