• DocumentCode
    611019
  • Title

    CUDA vs OpenACC: Performance Case Studies with Kernel Benchmarks and a Memory-Bound CFD Application

  • Author

    Hoshino, Takashi ; Maruyama, Naoya ; Matsuoka, Shingo ; Takaki, R.

  • Author_Institution
    Dept. of Math. & Comput. Sci., Tokyo Inst. of Technol., Tokyo, Japan
  • fYear
    2013
  • fDate
    13-16 May 2013
  • Firstpage
    136
  • Lastpage
    143
  • Abstract
    OpenACC is a new accelerator programming interface that provides a set of OpenMP-like loop directives for the programming of accelerators in an implicit and portable way. It allows the programmer to express the offloading of data and computations to accelerators, such that the porting process for legacy CPU-based applications can be significantly simplified. This paper focuses on the performance aspects of OpenACC using two micro benchmarks and one real-world computational fluid dynamics application. Both evaluations show that in general OpenACC performance is approximately 50% lower than CUDA. However, for some applications it can reach up to 98% with careful manual optimizations. The results also indicate several limitations of the OpenACC specification that hamper full use of the GPU hardware resources, resulting in a significant performance gap when compared to a fully tuned CUDA code. The lack of a programming interface for the shared memory in particular results in as much as three times lower performance.
  • Keywords
    application program interfaces; benchmark testing; computational fluid dynamics; graphics processing units; message passing; parallel architectures; shared memory systems; software maintenance; software performance evaluation; CUDA; GPU hardware resource; OpenACC specification; OpenMP-like loop directive; accelerator programming interface; computational fluid dynamics; kernel benchmark; legacy CPU-based application; memory-bound CFD; performance aspect; porting process; shared memory; Arrays; Benchmark testing; Graphics processing units; Instruction sets; Kernel; Optimization; Programming; CUDA; GPU; OpenACC;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Cluster, Cloud and Grid Computing (CCGrid), 2013 13th IEEE/ACM International Symposium on
  • Conference_Location
    Delft
  • Print_ISBN
    978-1-4673-6465-2
  • Type

    conf

  • DOI
    10.1109/CCGrid.2013.12
  • Filename
    6546071