"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
Who This Book Is For
New data-parallel programming and computer programmers interested in data-parallel programming using C++
Conditions of Use
This book is licensed under a Creative Commons License (CC BY). You can download the ebook Data Parallel C++, 2nd Edition for free.
- Title
- Data Parallel C++, 2nd Edition
- Subtitle
- Programming Accelerated Systems Using C++ and SYCL
- Publisher
- Apress
- Author(s)
- Ben Ashbaugh, James Brodman, James Reinders, John Pennycook, Michael Kinsner, Xinmin Tian
- Published
- 2023-10-04
- Edition
- 2
- Format
- eBook (pdf, epub, mobi)
- Pages
- 660
- Language
- English
- ISBN-10
- 1484296907
- ISBN-13
- 9781484296912
- License
- CC BY
- Book Homepage
- Free eBook, Errata, Code, Solutions, etc.
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