Fr. 126.00

Programming Your GPU with OpenMP - Performance Portability for GPUs

English · Paperback / Softback

Shipping usually within 6 to 7 weeks

Description

Read more

Informationen zum Autor Tom Deakin is Lecturer in Advanced Computer Systems at the University of Bristol, researching the performance portability of massively parallel high performance simulation codes. He has given tutorials and lecture series on parallel programming models including OpenMP, SYCL, and OpenCL. Timothy G. Mattson is a senior principal engineer at Intel where he’s worked since 1993 on: the first TFLOP computer; the creation of MPI, OpenMP, and OpenCL; HW/SW co-design of many-core processors; data management systems; and the GraphBLAS API for expressing graph algorithms as sparse linear algebra. Klappentext "OpenMP is a widely used language for programming the nodes in a parallel computer. Those nodes are now heterogeneous, including a GPU alongside the traditional CPU"-- Zusammenfassung 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. 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. Inhaltsverzeichnis Series Foreword xiii Preface xv Acknowledgments xix I Setting the Stage 1 Heterogeneity and the Future of Computing 5 1.1 The Basic Building Blocks of Modern Computing 7 1.1.1 The CPU 8 1.1.2 The SIMD Vector Unit 11 1.1.3 The GPU 15 1.2 OpenMP: A Single Code-Base for Heterogeneous Hardware 20 1.3 The Structure of This Book 21 1.4 Supplementary Materials 22 2 OpenMP Overview 23 2.1 Threads: Basic Concepts 23 2.2 OpenMP: Basic Syntax 27 2.3 The Fundamental Design Patterns of OpenMP 32 2.3.1 The SPMD Pattern 33 2.3.2 The Loop-Level Parallelism Pattern 37 2.3.3 The Divide-and-Conquer Pattern 42 2.3.3.1 Tasks in OpenMP 45 2.3.3.2 Parallelizing Divide-and-Conquer 48 2.4 Task Execution 49 2.5 Our Journey Ahead 51 II The GPU Common Core 3 Running Parallel Code on a GPU 59 3.1 Target Construct: Offloading Execution onto a Device 59 3.2 Moving Data between the Host and a Device 63 3.2.1 Scalar Variables 63 3.2.2 Arrays on the Stack 65 3.2.3 Derived Types 66 3.3 Parallel Execution on the Target Device 68 3.4 Concurrency and the Loop Construct 70 3.5 Example: Walking through Matrix Multiplication 72 4 Memory Movement 75 4.1 OpenMP Array Syntax 76 4.2 Sharing Data Explicitly with the Map Clause 78 4.2.1 The Map Clause 79 4.2.2 Example: Vector Add on the ...

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.