Автор: Tom Deakin, Timothy G. Mattson
Издательство: The MIT Press
Год: 2023
Страниц: 336
Язык: английский
Формат: epub
Размер: 13.1 MB
The essential guide for writing portable, parallel programs for GPUs using the OpenMP programming model.
Today’s computers are complex, multi-architecture systems: multiple cores in a shared address space, graphics processing units (GPUs), and specialized accelerators. To get the most from these systems, programs must use all these different processors. In Programming Your GPU with OpenMP, Tom Deakin and Timothy Mattson help everyone, from beginners to advanced programmers, learn how to use OpenMP to program a GPU using just a few directives and runtime functions. Then programmers can go further to maximize performance by using CPUs and GPUs in parallel—true heterogeneous programming. And since OpenMP is a portable API, the programs will run on almost any system.
This book will help you learn how to program a GPU with OpenMP. The first part of the book provides the background you need to understand GPU programming with OpenMP. We start by reviewing hardware developments that programmers need to understand. We explain the GPU, its differences and similarities to the modern CPU. Next, we include a chapter that summarizes how to use OpenMP to program multithreaded systems (i.e., multicore systems with a shared address space). With this background in place, you will be ready for our core topic: how to use OpenMP to program heterogeneous systems composed of CPUs and GPUs.
GPU programming is the topic for Part II of the book. Parallel programming is hard. Just as the original version of OpenMP made it easier to write multithreaded code, modern OpenMP greatly simplifies GPU programming. With 10 items consisting of directives, runtime functions, and environment variables, you’ll be able to write programs that run on a GPU. In many cases, these programs will run with performance on par with that from lower-level (and often nonportable) approaches. We call these 10 items the OpenMP GPU Common Core. Explaining the GPU Common Core is our main goal for the second part of the book. After covering the items that make up the GPU common core, we close Part II with a discussion of the key principles of performance optimization for GPU programming: the so-called Eightfold Path to performance.
Programming Your GPU with OpenMP shares best practices for writing performance portable programs. Key features include:
The most up-to-date APIs for programming GPUs with OpenMP with concepts that transfer to other approaches for GPU programming.
Written in a tutorial style that embraces active learning, so that readers can make immediate use of what they learn via provided source code.
Builds the OpenMP GPU Common Core to get programmers to serious production-level GPU programming as fast as possible.
Additional features:
A reference guide at the end of the book covering all relevant parts of OpenMP 5.2.
An online repository containing source code for the example programs from the book—provided in all languages currently supported by OpenMP: C, C++, and Fortran.
Tutorial videos and lecture slides.
Скачать Programming Your GPU with OpenMP: Performance Portability for GPUs