• DocumentCode
    3582181
  • Title

    Coordinating GPU Threads for OpenMP 4.0 in LLVM

  • Author

    Bertolli, Carlo ; Antao, Samuel F. ; Eichenberger, Alexandre E. ; Sura, Kevin O´Brien Zehra ; Jacob, Arpith C. ; Tong Chen ; Sallenave, Olivier

  • Author_Institution
    IBM T.J. Watson Res. Center, Yorktown Heights, NY, USA
  • fYear
    2014
  • Firstpage
    12
  • Lastpage
    21
  • Abstract
    GPUs devices are becoming critical building blocks of High-Performance platforms for performance and energy efficiency reasons. As a consequence, parallel programming environment such as OpenMP were extended to support offloading code to such devices. OpenMP compilers are faced with offering an efficient implementation of device-targeting constructs. One main issue in implementing OpenMP on a GPU is related to efficiently supporting sequential and parallel regions, as GPUs are only optimized to execute highly parallel workloads. Multiple solutions to this issue were proposed in previous research. In this paper, we propose a method to coordinate threads in an NVIDIA GPU that is both efficient and easily integrated as part of a compiler. To support our claims, we developed CUDA programs that mimic multiple coordination schemes and we compare their performances. We show that a scheme based on dynamic parallelism performs poorly compared to inspector-executor schemes that we introduce in this paper. We also discuss how to integrate these schemes to the LLVM compiler infrastructure.
  • Keywords
    graphics processing units; multi-threading; parallel architectures; program compilers; CUDA programs; GPU devices; GPU threads; LLVM compiler infrastructure; NVIDIA GPU; OpenMP 4.0; OpenMP compilers; code offloading; dynamic parallelism; graphics processing unit; high-performance platforms; inspector-executor schemes; parallel programming environment; parallel regions; parallel workloads; sequential regions; Acceleration; Graphics processing units; Kernel; Parallel processing; Performance evaluation; Synchronization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    LLVM Compiler Infrastructure in HPC (LLVM-HPC), 2014
  • Type

    conf

  • DOI
    10.1109/LLVM-HPC.2014.10
  • Filename
    7069297