OpenMPC: Extended OpenMP for efficient programming and tuning on GPUs

    Research output: Contribution to journalArticlepeer-review

    14 Scopus citations

    Abstract

    General-purpose graphics processing units (GPGPUs) provide inexpensive, high performance platforms for compute-intensive applications. However, their programming complexity poses a significant challenge to developers. Even though the compute unified device architecture (CUDA) programming model offers better abstraction, developing efficient GPGPU code is still complex and error-prone. This paper proposes a directive-based, high-level programming model, called OpenMPC, which addresses both programmability and tunability issues on GPGPUs. We have developed a fully automatic compilation and user-assisted tuning system supporting OpenMPC. In addition to a range of compiler transformations and optimisations, the system includes tuning capabilities for generating, pruning, and navigating the search space of compilation variants. Evaluation using 14 applications shows that our system achieves 75% of the performance of the hand-coded CUDA programmes (92% if excluding one exceptional case).

    Original languageEnglish
    Pages (from-to)4-20
    Number of pages17
    JournalInternational Journal of Computational Science and Engineering
    Volume8
    Issue number1
    DOIs
    StatePublished - 2013

    Keywords

    • Automatic translation
    • CUDA
    • Code generation
    • Compiler transformation
    • Compute unified device architecture
    • Directives
    • GPU
    • Graphics processing unit
    • OpenMP
    • OpenMPC
    • Optimisations
    • Performance tuning
    • Programming model

    Fingerprint

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

    Cite this