-
Book Overview & Buying
-
Table Of Contents
GPU Programming with C++ and CUDA
By :
Welcome to an accelerated world! Technology that in the past focused specifically on graphical and image processing is now used to speed up computations in a wide variety of domains. Graphical Processing Units, or GPUs for short, can be programmed to enable applications to reach solutions many times faster than would be possible with a CPU (Central Processing Unit).
When programming GPUs we are dealing with a very different paradigm to that involved in parallel programming for CPUs. GPUs have a distinct hardware architecture, and usually run on a separate, specialized hardware card that does not allow direct access to the main system memory. This means we have to understand how to control the device and its internals to make better use of its potential.
Besides that, the type of problem that requires this kind of acceleration usually involves some relatively advanced mathematics, which can be intimidating at first.
All of this presents us with a dilemma when we are learning GPU programming: how can we address the key concepts and technical structures in a simple way?
In this book we focus on providing a solution-oriented approach for each GPU concept, illustrated with simple examples that do not require advanced math. Our aim is to allow you, the reader, to develop your knowledge about this new programming paradigm by hopefully facing only modest technical challenges during the learning process.
Two of the chapters are somewhat theoretical in flavor. Chapter 1 sets the stage for parallel programs thinking, while Chapter 5 provides explanations of some of the resources we use in our first practical examples. All the remaining chapters are practical in style, allowing you to learn how to solve code acceleration problems by implementing code solutions. Thus programming plays a central role in this book, with the theoretical concepts orbiting around it.
Computational performance is of course of major importance today, in the AI era, and hence it is of fundamental importance to understand how GPUs work, rather than just try to use them blindly. That way you can avoid potentially erroneous or disappointing results.