• DocumentCode
    652596
  • Title

    Programming for GPUs: The Directive-Based Approach

  • Author

    Grillo, Lucas ; de Sande, Francisco ; Fumero, Juan J. ; Reyes, Ruyman

  • Author_Institution
    Dept. de EIO y Comput., Univ. de La Laguna, La Laguna, Spain
  • fYear
    2013
  • fDate
    28-30 Oct. 2013
  • Firstpage
    612
  • Lastpage
    617
  • Abstract
    In the last years, hardware accelerators, such as GPUs have become ubiquitous in the HPC landscape and GPGPU has been massively adopted by the HPC research community. If something is slowing down further expansion of this technology are its difficulties in terms of programmability. Although several libraries and applications providing GPU support are available, the need of implementing new algorithms from scratch, or adapting sequential programs to accelerators, still exist. Writing programs to be executed on accelerators is not easy, particularly for non-expert developers coming from the science or engineering fields, as it requires deep understanding of the underlying architecture. Different alternatives have appeared aimed to diminish the GPU programming effort. In the wake of the success of OpenMP, several directive-oriented programming models have been created. Although future OpenMP releases will integrate accelerators, tools are needed in the meantime. In this work, we present a comparison of directive-based approaches for GPU platforms, hiCUDA, PGI Accelerator and OpenACC. For the last, in addition to the two commercial compilers available, we include results using accULL, our own OpenACC implementation. To illustrate the portability of these alternatives, we show performance figures for both Fermi and Kepler NVIDIA cards.
  • Keywords
    graphics processing units; message passing; parallel architectures; program compilers; software libraries; Fermi card; GPU programming; HPC; Kepler NVIDIA card; OpenACC; OpenMP; PGI accelerator; accULL; compiler; directive-oriented programming model; hardware accelerator; hiCUDA; program execution; program library; sequential program; Graphics processing units; Kernel; Parallel processing; Programming; Runtime; Standards; CUDA; Compilers; GPGPU; HMPP; OpenACC; PGI; accULL;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2013 Eighth International Conference on
  • Conference_Location
    Compiegne
  • Type

    conf

  • DOI
    10.1109/3PGCIC.2013.106
  • Filename
    6681300