Book description
Learn how to accelerate C++ programs using data parallelism. This open access book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics.
Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices—including GPUs, CPUs, FPGAs and AI ASICs—that are suitable to the problems at hand.
This book begins by introducing data parallelism and foundational topics for effective use of the SYCL standard from the Khronos Group and Data Parallel C++ (DPC++), the open source compiler used in this book. Later chapters cover advanced topics including error handling, hardware-specific programming, communication and synchronization, and memory model considerations.What You'll Learn
- Accelerate C++ programs using data-parallel programming
- Target multiple device types (e.g. CPU, GPU, FPGA)
- Use SYCL and SYCL compilers
- Connect with computing’s heterogeneous future via Intel’s oneAPI initiative
Who This Book Is For
Those new data-parallel programming and computer programmers interested in data-parallel programming using C++.
Table of contents
- Cover
- Front Matter
- 1. Introduction
- 2. Where Code Executes
- 3. Data Management
- 4. Expressing Parallelism
- 5. Error Handling
- 6. Unified Shared Memory
- 7. Buffers
- 8. Scheduling Kernels and Data Movement
- 9. Communication and Synchronization
- 10. Defining Kernels
- 11. Vectors
- 12. Device Information
- 13. Practical Tips
- 14. Common Parallel Patterns
- 15. Programming for GPUs
- 16. Programming for CPUs
- 17. Programming for FPGAs
- 18. Libraries
- 19. Memory Model and Atomics
- Back Matter
Product information
- Title: Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL
- Author(s):
- Release date: November 2020
- Publisher(s): Apress
- ISBN: 9781484255742
You might also like
book
C++ Programming for Linux Systems
Boost your C++ skills by working through realistic examples and exploring system specifications Key Features Master …
video
Mastering C++ Standard Library Features
C++ has come a long way and has now been adopted in several contexts with the …
book
C++ Reactive Programming
Learn how to implement the reactive programming paradigm with C++ and build asynchronous and concurrent applications …
book
Exploring C++20: The Programmer's Introduction to C++
Discover everything you need to know about C++ in a logical progression of small lessons that …