Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying GPU Programming with C++ and CUDA
  • Table Of Contents Toc
GPU Programming with C++ and CUDA

GPU Programming with C++ and CUDA

By : Paulo Motta
close
close
GPU Programming with C++ and CUDA

GPU Programming with C++ and CUDA

By: Paulo Motta

Overview of this book

Written by Paulo Motta, a senior researcher with decades of experience, this comprehensive GPU programming book is an essential guide for leveraging the power of parallelism to accelerate your computations. The first section introduces the concept of parallelism and provides practical advice on how to think about and utilize it effectively. Starting with a basic GPU program, you then gain hands-on experience in managing the device. This foundational knowledge is then expanded by parallelizing the program to illustrate how GPUs enhance performance. The second section explores GPU architecture and implementation strategies for parallel algorithms, and offers practical insights into optimizing resource usage for efficient execution. In the final section, you will explore advanced topics such as utilizing CUDA streams. You will also learn how to package and distribute GPU-accelerated libraries for the Python ecosystem, extending the reach and impact of your work. Combining expert insight with real-world problem solving, this book is a valuable resource for developers and researchers aiming to harness the full potential of GPU computing. The blend of theoretical foundations, practical programming techniques, and advanced optimization strategies it offers is sure to help you succeed in the fast-evolving field of GPU programming.
Table of Contents (17 chapters)
close
close
Lock Free Chapter
1
Understanding Where We Are Heading
6
Bring It On!
10
Moving Forward
15
Other Books You May Enjoy
16
Index

Preface

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.

CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
GPU Programming with C++ and CUDA
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon