Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Computational Science, Engineering & Technology Series
PATTERNS FOR PARALLEL PROGRAMMING ON GPUS
Edited by: F. Magoulès
Evaluation of State-of-the-Art Parallelizing Compilers Generating CUDA Code for Heterogeneous CPU/GPU Computing
J.C. Juega1, S. Verdoolaege2, A. Cohen2, J.I. Gómez1 C. Tenllado1 and F. Catthoor3
1Universidad Complutense de Madrid, Spain
J.C. Juega, S. Verdoolaege, A. Cohen, J.I. Gómez, C. Tenllado, F. Catthoor, "Evaluation of State-of-the-Art Parallelizing Compilers Generating CUDA Code for Heterogeneous CPU/GPU Computing", in F. Magoulès, (Editor), "Patterns for Parallel Programming on GPUs", Saxe-Coburg Publications, Stirlingshire, UK, Chapter 1, pp 1-30, 2014. doi:10.4203/csets.34.1
Keywords: polyhedral model, GPU, CUDA, code generation, compilers, loop transformations, C-to-CUDA, Par4All, PPCG.
At present, multi-core and many-core platforms lead the computer industry, forcing software developers to adopt new programming paradigms, in order fully to exploit their computing capabilities. Nowadays, Graphics Processing Units (GPUs) are one representative of many-core architectures, and certainly the most widespread.
GPU application development requires a great effort from application programmers. On one hand, they must take advantage of the massively parallel platform in the problem modeling. On the other hand, the applications have to make an efficient use of the heterogeneous memory system, managing several levels that are software or hardware controlled. Generally the programmers' methodology consists of evaluating several mapping alternatives, guided by their experience and intuition, which becomes inefficient for software development and maintenance.
This chapter evaluates and compares tool frameworks that automatically generate code for GPUs, saving time and effort for programmers. These frameworks take advantage of Polyhedral Model techniques to exploit parallelism and to satisfy the specific GPU constraints. The chapter shows the key features of some of these source-to-source compilers and analyzes the code that they generate. Finally we discuss the importance of some key aspects such as data mapping and code quality.
purchase the full-text of this chapter (price £20)