Data Parallel C++
Autor James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tianen Limba Engleză Paperback – 4 oct 2023
Structura acestei lucrări este riguros progresivă, facilitând tranziția de la conceptele fundamentale de paralelism al datelor la implementări complexe pe sisteme eterogene. Putem afirma că abordarea autorilor este una eminamente practică, debutând cu arhitectura executabilă și gestiunea memoriei, pentru a avansa ulterior către subiecte critice precum gestiunea erorilor, barierele grupurilor de lucru și specializarea kernel-ului. Descoperim aici o analiză detaliată a modului în care o singură aplicație C++ poate orchestra resurse hardware diverse, de la GPU și CPU până la unități FPGA sau ASIC. Complementar volumului Heterogeneous Computing with OpenCL 2.0, care se concentrează pe standardul OpenCL, Data Parallel C++ oferă o perspectivă modernă axată pe SYCL 2020, eliminând barierele de limbaj prin utilizarea C++ standard. În comparație cu Pro TBB, care vizează în principal paralelismul bazat pe fire de execuție pentru procesoare, lucrarea de față extinde aria de aplicabilitate către acceleratoare externe, oferind soluții pentru portabilitatea codului între diferiți furnizori de hardware. Expertiza colectivă a autorilor, vizibilă și în lucrări anterioare precum Intel Xeon Phi Processor High Performance Programming, se reflectă în calitatea explicațiilor tehnice despre Unified Shared Memory (USM) și atomicitate. Cele 21 de capitole sunt organizate pentru a ghida programatorul prin toate etapele dezvoltării, inclusiv un capitol dedicat interoperabilității backend-urilor și unul esențial pentru migrarea codului existent din ecosistemul proprietar CUDA către standarde deschise. Apreciem în mod deosebit includerea tiparelor de paralelism comune, care servesc drept șabloane pentru optimizarea performanței în scenarii reale de producție.
Preț: 250.93 lei
Preț vechi: 313.65 lei
-20%
Carte disponibilă
Livrare economică 22 mai-05 iunie
Specificații
ISBN-10: 1484296907
Pagini: 660
Ilustrații: XXX, 630 p. 329 illus., 294 illus. in color.
Dimensiuni: 155 x 235 x 36 mm
Greutate: 0.98 kg
Ediția:Second Edition
Editura: Apress
Locul publicării:Berkeley, CA, United States
De ce să citești această carte
Recomandăm această carte programatorilor C++ care doresc să stăpânească programarea accelerată fără a fi blocați într-un ecosistem proprietar. Cititorul câștigă capacitatea de a scrie cod performant, portabil între GPU-uri și FPGA-uri de la diferiți producători. Este un ghid tehnic indispensabil pentru cei care lucrează în calcul de înaltă performanță (HPC) și doresc să aplice standardul SYCL 2020 în proiecte comerciale sau de cercetare.
Despre autor
James Reinders este un specialist de renume în arhitecturi paralele, cu o activitate prolifică în optimizarea software-ului pentru sisteme complexe. Împreună cu o echipă de experți precum Michael Kinsner și John Pennycook, acesta a contribuit fundamental la dezvoltarea ecosistemelor de programare pentru Intel. Opera sa, care include titluri precum Intel Xeon Phi Processor High Performance Programming și seria High Performance Parallelism Pearls, demonstrează un angajament constant față de educarea comunității de dezvoltatori în utilizarea eficientă a resurselor hardware moderne prin standarde deschise.
Descriere scurtă
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.
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
Cuprins
Notă biografică
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.