Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Computational Science, Engineering & Technology Series
ISSN 1759-3158
CSETS: 34
PATTERNS FOR PARALLEL PROGRAMMING ON GPUS
Edited by: F. Magoulès
Chapter 1

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
2INRIA and École Normale Supérieure, Cachan, France
3IMEC, Leuven, Belgium

Full Bibliographic Reference for this chapter
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.

Abstract
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)

go to the previous chapter
go to the next chapter
return to the table of contents
return to the book description
purchase this book (price £85 +P&P)