GPU Parallel Program Development Using CUDA: 1st Edition (Hardback) book cover

GPU Parallel Program Development Using CUDA

1st Edition

By Tolga Soyata

Chapman and Hall/CRC

440 pages | 54 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781498750752
pub: 2018-02-16
SAVE ~$14.59
eBook (VitalSource) : 9781315368290
pub: 2018-01-19
from $36.48

FREE Standard Shipping!


GPU Parallel Program Development using CUDA teaches GPU programming by showing the differences among different families of GPUs. This approach prepares the reader for the next generation and future generations of GPUs. The book emphasizes concepts that will remain relevant for a long time, rather than concepts that are platform-specific. At the same time, the book also provides platform-dependent explanations that are as valuable as generalized GPU concepts.

The book consists of three separate parts; it starts by explaining parallelism using CPU multi-threading in Part I. A few simple programs are used to demonstrate the concept of dividing a large task into multiple parallel sub-tasks and mapping them to CPU threads. Multiple ways of parallelizing the same task are analyzed and their pros/cons are studied in terms of both core and memory operation.

Part II of the book introduces GPU massive parallelism. The same programs are parallelized on multiple Nvidia GPU platforms and the same performance analysis is repeated. Because the core and memory structures of CPUs and GPUs are different, the results differ in interesting ways. The end goal is to make programmers aware of all the good ideas, as well as the bad ideas, so readers can apply the good ideas and avoid the bad ideas in their own programs.

Part III of the book provides pointer for readers who want to expand their horizons. It provides a brief introduction to popular CUDA libraries (such as cuBLAS, cuFFT, NPP, and Thrust),the OpenCL programming language, an overview of GPU programming using other programming languages and API libraries (such as Python, OpenCV, OpenGL, and Apple’s Swift and Metal,) and the deep learning library cuDNN.

Table of Contents

Part I Understanding CPU Parallelism

1. Introduction to CPU Parallel Programming

2. Developing Our First Parallel CPU Program

3. Improving Our First Parallel CPU Program

4. Understanding the Cores and Memory

5. Thread Management and Synchronization

Part II GPU Programming Using CUDA

6. Introduction to GPU Parallelism and CUDA

7. CUDA Host/Device Programming Model

8. Understanding GPU Hardware Architecture

9. Understanding GPU Cores

10. Understanding GPU Memory

11. CUDA Streams

Part III More To Know

12. CUDA Libraries (Mohamadhadi Habibzadeh, Omid Rajabi Shishvan , and Tolga Soyata)

13. Introduction to Open CL (Chase Conklin and Tolga Soyata)

14. Other GPU Programming Languages (Sam Miller and Tolga Soyata)

About the Author

Tolga Soyata is an associate professor in the Electrical and Computer Engineering department of SUNY Albany.

About the Series

Chapman & Hall/CRC Computational Science

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Computer Graphics
COMPUTERS / Programming / Games
COMPUTERS / Programming Languages / General