Data Parallel C++: Mastering Programming of Accelerated Systems Using C++ with Sycl

Reinders, James, Ashbaugh, Ben, Brodman, James

  • 出版商: Apress
  • 出版日期: 2023-10-04
  • 定價: $1,800
  • 售價: 9.5$1,710
  • 貴賓價: 9.0$1,620
  • 語言: 英文
  • 頁數: 635
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1484296907
  • ISBN-13: 9781484296905
  • 相關分類: C++ 程式語言
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

"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++


This is an open access book.

商品描述(中文翻譯)

這本書是學習 SYCL 2020 的首要資源,現已推出第二版,也是您成為這個社群一份子所需的唯一書籍。- Erik Lindahl, GROMACS 和斯德哥爾摩大學

這本開放存取的書籍讓 C++ 程式設計師能夠站在這個令人興奮且重要的發展前沿,推動計算達到新的水平。這本更新的第二版充滿了實用的建議、詳細的解釋和程式碼範例,以說明關鍵主題。

SYCL 可以在現代加速異質系統中存取並行資源。現在,一個單一的 C++ 應用程式可以使用包括 GPU、CPU、FPGA 和 ASIC 在內的任何組合,以解決手頭的問題。

這本書教授使用 C++ 和 SYCL 進行資料並行程式設計,並介紹了一切編寫加速系統所需的內容。書籍首先介紹資料並行性和有效使用 SYCL 的基礎主題。後面的章節涵蓋了高級主題,包括錯誤處理、硬體特定程式設計、通訊和同步,以及記憶體模型考量。

本書中使用的所有範例程式碼都可以在 GitHub 上免費取得。這些範例以現代 SYCL 編寫,並定期更新以確保與多個編譯器的相容性。

您將學到什麼:
- 使用資料並行程式設計加速 C++ 程式
- 使用支援 SYCL 的 SYCL 和 C++ 編譯器
- 編寫可攜式的加速器程式碼,不受供應商和設備的限制
- 優化程式碼以提高特定加速器的效能
- 在許多供應商推出新加速器時受益

本書適合對資料並行程式設計和電腦程式設計有興趣的新手和資料並行程式設計使用 C++ 的程式設計師。

這是一本開放存取的書籍。

作者簡介

James Reinders is an Engineer at Intel Corporation with more than four decades of experience in parallel computing and is an author/co-author/editor of more than 10 technical books related to parallel programming. He has a passion for system optimization and teaching. He has had the great fortune to help make contributions to three of the world's fastest computers (#1 on the TOP500 list) as well as many other supercomputers and software developer tools.

Ben Ashbaugh is a Software Architect at Intel Corporation, where he has worked for over 20 years developing software drivers and compilers for Intel graphics products. For the past 10 years, he has focused on parallel programming models for general-purpose computation on graphics processors, including SYCL and the DPC++ compiler. He is active in the Khronos SYCL, OpenCL, and SPIR working groups; helping to define industry standards for parallel programming; and he has authored numerous extensions to expose unique Intel GPU features.

James Brodman is a Principal Engineer at Intel Corporation, working on runtimes and compilers for parallel programming, and he is one of the architects of DPC++. He has a PhD in Computer Science from the University of Illinois at Urbana-Champaign.

Michael Kinsner is a Principal Engineer at Intel Corporation, developing parallel programming languages and compilers for a variety of architectures. He contributes extensively to spatial architectures and programming models and is an Intel representative within The Khronos Group where he works on the SYCL and OpenCL industry standards for parallel programming. He has a PhD in Computer Engineering from McMaster University and is passionate about programming models that cross architectures while still enabling performance.

John Pennycook is a Software Enabling and Optimization Architect at Intel Corporation, focused on enabling developers to fully utilize the parallelism available in modern processors. He is experienced in optimizing and parallelizing applications from a range of scientific domains, and previously served as Intel's representative on the steering committee for the Intel eXtreme Performance User's Group (IXPUG). He has a PhD in Computer Science from the University of Warwick. His research interests are varied, but a recurring theme is the ability to achieve application "performance portability" across different hardware architectures.

Xinmin Tian is an Intel Fellow and Compiler Architect at Intel Corporation and serves as Intel's representative on OpenMP Architecture Review Board (ARB). He has been driving OpenMP offloading, vectorization, and parallelization compiler technologies for Intel architectures. His current focus is on LLVM-based OpenMP offloading, SYCL/DPC++ compiler optimizations for CPUs/GPUs, and tuning HPC/AI application performance. He has a PhD in Computer Science from Tsinghua University, holds 27 US patents, has published over 60 technical papers with over 1300+ citations of his work, and has co-authored two books that span his expertise.


作者簡介(中文翻譯)

James Reinders 是 Intel Corporation 的工程師,擁有超過四十年的並行計算經驗,並且是超過十本與並行程式設計相關的技術書籍的作者/合著者/編輯。他對系統優化和教學充滿熱情。他有幸參與了三台世界上最快的電腦(TOP500榜單第一名)以及許多其他超級電腦和軟體開發工具的貢獻。

Ben Ashbaugh 是 Intel Corporation 的軟體架構師,他在 Intel 圖形產品的軟體驅動程式和編譯器開發方面已經工作了超過二十年。在過去的十年中,他專注於通用計算的並行程式設計模型,包括 SYCL 和 DPC++ 編譯器。他活躍於 Khronos SYCL、OpenCL 和 SPIR 工作組,幫助定義並行程式設計的行業標準,並撰寫了許多擴展以展示獨特的 Intel GPU 功能。

James Brodman 是 Intel Corporation 的首席工程師,負責並行程式設計的運行時和編譯器,並且是 DPC++ 的架構師之一。他在伊利諾伊大學香檳分校獲得計算機科學博士學位。

Michael Kinsner 是 Intel Corporation 的首席工程師,開發各種架構的並行程式設計語言和編譯器。他在空間架構和程式設計模型方面做出了大量貢獻,並且是 The Khronos Group 內的 Intel 代表,致力於 SYCL 和 OpenCL 的並行程式設計行業標準。他在麥馬士達大學獲得計算機工程博士學位,對跨架構的程式設計模型並實現性能仍然充滿熱情。

John Pennycook 是 Intel Corporation 的軟體啟用和優化架構師,專注於讓開發人員充分利用現代處理器中可用的並行性。他擅長優化和並行化來自各種科學領域的應用程序,並曾擔任 Intel eXtreme Performance User's Group (IXPUG) 的指導委員會代表。他在華威大學獲得計算機科學博士學位。他的研究興趣多樣,但一個常見的主題是實現在不同硬體架構上的應用程序「性能可移植性」。

Xinmin Tian 是 Intel Corporation 的 Intel Fellow 和編譯器架構師,並擔任 Intel 在 OpenMP Architecture Review Board (ARB) 的代表。他一直致力於 Intel 架構的 OpenMP 卸載、向量化和並行化編譯器技術。他目前的重點是基於 LLVM 的 OpenMP 卸載、SYCL/DPC++ 編譯器針對 CPU/GPU 的優化,以及調整 HPC/AI 應用程序的性能。他在清華大學獲得計算機科學博士學位,擁有 27 項美國專利,發表了超過 60 篇技術論文,其工作被引用超過 1300 次,並合著了兩本涵蓋他專業知識範圍的書籍。