• DocumentCode
    3145004
  • Title

    Harnessing the Power of GPUs without Losing Abstractions in SAC and ArrayOL: A Comparative Study

  • Author

    Guo, Jing ; Rodrigues, Wendell ; Thiyagalingam, Jeyarajan ; Guyomarc´h, Frédéric ; Boulet, Pierre ; Scholz, Sven-Bodo

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Hertfordshire, Hatfield, UK
  • fYear
    2011
  • fDate
    16-20 May 2011
  • Firstpage
    1183
  • Lastpage
    1190
  • Abstract
    Over recent years, using Graphics Processing Units (GPUs) has become as an effective method for increasing the performance of many applications. However, these performance benefits from GPUs come at a price. Firstly extensive programming expertise and intimate knowledge of the underlying hardware are essential for gaining good speedups. Secondly, the expressibility of GPU-based programs are not powerful enough to retain the high-level abstractions of the solutions. Although the programming experience has been significantly improved by existing frameworks like CUDA and OpenCL, it is still a challenge to effectively utilise these devices while still retaining the programming abstractions. To this end, performing a source-to-source transformation, whereby a high-level language is mapped to CUDA or OpenCL, is an attractive option. In particular, it enables one to retain high-level abstractions and to harness the power of GPUs without any expertise on the GPGPU programming. In this paper, we compare and analyse two such schemes. One of them is a transformation mechanism for mapping a image/signal processing domain-specific language, ArrayOL, to OpenCL. The other one is a transformation route for mapping a high-level general purpose array processing language, Single Assignment C (SaC) to CUDA. Using a real-world image processing application as a running example, we demonstrate that albeit the fact of being general purpose, the array processing language be used to specify complex array access patterns generically. Performance of the generated CUDA code is comparable to the OpenCL code created from domain-specific language.
  • Keywords
    computer graphic equipment; high level languages; image processing; ArrayOL; CUDA; GPGPU programming; GPU-based programs; OpenCL; SaC; Single Assignment C; graphics processing units; high-level abstractions; high-level general purpose array processing language; high-level language; image/signal processing domain-specific language; source-to-source transformation; Arrays; Generators; Graphics processing unit; Programming; Shape; Tiles; Unified modeling language;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW), 2011 IEEE International Symposium on
  • Conference_Location
    Shanghai
  • ISSN
    1530-2075
  • Print_ISBN
    978-1-61284-425-1
  • Electronic_ISBN
    1530-2075
  • Type

    conf

  • DOI
    10.1109/IPDPS.2011.276
  • Filename
    6008968