Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
CUDA programming : a developer’s guide to parallel computing with GPUs
Cook S., Morgan Kaufmann Publishers Inc., Waltham, MA, 2013. 600 pp. Type: Book (978-0-124159-33-4)
Date Reviewed: Jul 12 2013

There are many books on different aspects of programming with CUDA. However, this book differs from the others in terms of its practicality. The book does not require preliminary knowledge about CUDA devices, either as hardware or as a software system. Instead, it takes a gentle incremental approach to help readers--even novices--start programming with CUDA quickly.

The first three chapters introduce the reader to parallelism concepts and stream processing, and explain the value of using accelerators (graphics processing units (GPUs), field-programmable gate arrays (FPGAs), and cells) in high-performance computing. Chapter 4 describes setting up CUDA. Further on in the text, the author concentrates on GPUs in a CUDA framework. Because programming for GPUs is very much determined by the hardware, the author gives a fairly detailed description of CUDA-enabled architectures. The interested reader, however, can find more detailed documentation on the NVIDIA developer site, including how different types of CUDA devices are used (such as Fermi and Tesla). Programming with GPUs differs from the traditional message passing interface (MPI) programming model and requires a deep understanding of threads. Chapter 5 clearly explains why common central processing unit (CPU)-oriented programming techniques are not applicable to GPU programming, and why the most effective use of the CUDA device is achieved by tailoring the threads relative to data. In particular, when developing an application that needs to share data, it may not be so simple to achieve an effective parallel implementation. The chapter gives a relatively detailed explanation of the concept of thread parallelism, and provides the reader with some practical advice about performance optimization.

The memory in CUDA devices is organized differently and uses different types of memory with different access times and latencies, which can cause problems for proper memory handling. Chapter 6 offers vital insights on this subject for CUDA programmers. Chapter 8 discusses problems related to using multiple GPUs and CPUs within an application. Chapter 10 discusses the CUDA software development kit (SDK) and related libraries, which are used to develop optimal implementation; chapter 11 covers GPU-based system design; and chapter 12 describes common problems and mistakes and how to avoid them.

I must mention chapters 7, which deals with the practicalities of using the SDK, and 9, which offers advice and a detailed breakdown of areas that can limit the performance of a CUDA application. Together, these chapters transform this good book into the kind of excellent text that all CUDA developers can find useful, regardless of their relative experience. The book will also be useful to researchers, graduate students, scientists, and engineers who develop scientific code on CUDA devices.

More reviews about this item: Amazon

Reviewer:  Alexander Tzanov Review #: CR141359 (1309-0766)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Parallel Programming (D.1.3 ... )
 
 
Graphics Processors (I.3.1 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Parallel Programming": Date
How to write parallel programs: a first course
Carriero N. (ed), Gelernter D. (ed), MIT Press, Cambridge, MA, 1990. Type: Book (9780262031714)
Jul 1 1992
Parallel computer systems
Koskela R., Simmons M., ACM Press, New York, NY, 1990. Type: Book (9780201509373)
May 1 1992
Parallel functional languages and compilers
Szymanski B. (ed), ACM Press, New York, NY, 1991. Type: Book (9780201522433)
Sep 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy