Data Parallel C++ (DPC++) is an open-source compiler project based on the Khronos SYCL compiler with a few extensions. It is also the foundation compiler technology for oneAPI, a cross-industry, open, standards-based unified programming model that delivers a common developer experience across accelerator architectures. SYCL is an industry-driven Khronos programming language standard that adds data parallelism to the C++ language with support for heterogeneous computing architectures. The DPC++ language also offers broad, heterogeneous support for CPUs, GPUs, and FPGAs – which is why it’s the compiler at the core of the oneAPI specification.
Springer has just published new book titled “Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL” under its Apress open-access imprint. The book’s authors include James Reinders, a consultant with more than three decades of parallel computing experience, and five additional authors from Intel. A printed version of the book is now on sale online and a free PDF version is available on the SpringerLink Web site under the Creative Commons Attribution 4.0 International License.
This new 548-page book covers programming for data parallelism using C++ in depth. All examples in the book starting with the “Hello Data-Parallel Programming World” example in Chapter 1 compile and work with DPC++ compilers and are available from a GitHub repository.
The book is for all software developers, whether they’re new to parallel programming or old hands at it. As the authors write in the book’s preface:
“If you are new to parallel programming, that is okay. If you have never heard of SYCL or the DPC++ compiler, that is also okay.”
For readers of this Programmable Logic blog, Chapter 17 titled “Programming for FPGAs” will be especially interesting. As the authors explain in Chapter 17’s second paragraph:
“Field Programmable Gate Arrays (FPGAs) are unfamiliar to the majority of software developers, in part because most desktop computers don’t include an FPGA alongside the typical CPU and GPU. But FPGAs are worth knowing about because they offer advantages in many applications. The same questions need to be asked as we would of other accelerators, such as “When should I use an FPGA?”, “What parts of my applications should be offloaded to FPGA?”, and “How do I write code that performs well on an FPGA?
“This chapter gives us the knowledge to start answering those questions…”
For more information about “Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL,” and to download a free PDF copy of the book, click here.
Notices & Disclaimers
Intel technologies may require enabled hardware, software or service activation.
No product or component can be absolutely secure.
Your costs and results may vary.
© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.