
Data Parallel C++
Programming Accelerated Systems Using C++ and SYCL
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Data Parallel C++
Programming Accelerated Systems Using C++ and SYCL
About this book
"This book, now in is second edition, is the premier resource to learn SYCL 2020 and is the ONLY book you need to become part of this community." Erik Lindahl, GROMACS and Stockholm University
Learn how to accelerate C++ programs using data parallelism and SYCL.
This open access book enables C++ programmers to be at the forefront of this exciting and important development that is helping to push computing to new levels. This updated second edition is full of practical advice, detailed explanations, and code examples to illustrate key topics.
SYCL enables access to parallel resources in modern accelerated heterogeneous systems. Now, a single C++ application can use any combination of devicesâincluding GPUs, CPUs, FPGAs, and ASICsâthat are suitable to the problems at hand.
This book teaches data-parallel programming using C++ with SYCL and walks through everything needed to program accelerated systems. The book begins by introducing data parallelism and foundational topics for effective use of SYCL. Later chapters cover advanced topics, including error handling, hardware-specific programming, communication and synchronization, and memory model considerations.
All source code for the examples used in this book is freely available on GitHub. The examples are written in modern SYCL and are regularly updated to ensure compatibility with multiple compilers.
What You Will Learn
- Accelerate C++ programs using data-parallel programming
- Use SYCL and C++ compilers that support SYCL
- Write portable code for accelerators that is vendor and device agnostic
- Optimize code to improve performance for specific accelerators
- Be poised to benefit as new accelerators appear from many vendors
New data-parallel programming and computer programmers interested in data-parallel programming using C++
This is an open access book.
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
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 and Math Arrays
- 12. Device Information and Kernel Specialization
- 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
- 20. Backend Interoperability
- 21. Migrating CUDA Code
- Back Matter