OpenMPC: Extended OpenMP Programming and Tuning for GPUs

OpenMPC: Extended OpenMP Programming and Tuning for GPUs
复制标题

DOI:
10.1109/sc.2010.36
复制
发表时间:
2010-11
期刊:
2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
影响因子:
--
通讯作者:
Seyong Lee;R. Eigenmann
Seyong Lee;R. Eigenmann
中科院分区:
其他
文献类型:
--
作者:
Seyong Lee;R. Eigenmann

文献摘要

被引文献

相似文献

通用图形处理单元(gpgpu)是一种很有前途的高性能计算并行平台。CUDA(计算统一设备架构)编程模型为gpgpu上的通用计算提供了改进的可编程性。然而,其独特的执行模型和内存模型仍然给高效GPGPU代码的开发人员带来了巨大的挑战。本文提出了一种新的编程接口,称为OpenMPC,它建立在OpenMP的基础上,提供了复杂CUDA编程模型的抽象,并提供了对所涉及的参数和优化的高级控制。我们开发了一个支持OpenMPC的全自动编译和用户辅助调优系统。除了一系列编译器转换和优化之外,该系统还包括用于生成、修剪和导航编译变量的搜索空间的调优功能。我们的结果表明,OpenMPC提供了可编程性和可调性。我们的系统达到了手工编码CUDA程序的88%。
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.