LEADER 04397nam 22006135 450 001 9910424954703321 005 20230125191148.0 010 $a1-4842-5574-7 024 7 $a10.1007/978-1-4842-5574-2 035 $a(CKB)4100000011558601 035 $a(DE-He213)978-1-4842-5574-2 035 $a(MiAaPQ)EBC6383586 035 $a(Au-PeEL)EBL6383586 035 $a(OCoLC)1204226016 035 $a(oapen)https://directory.doabooks.org/handle/20.500.12854/30305 035 $a(OCoLC-P)1204226016 035 $a(CaSebORM)9781484255742 035 $a(PPN)252510720 035 $a(EXLCZ)994100000011558601 100 $a20201102d2021 u| 0 101 0 $aeng 135 $aurnn|008mamaa 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aData Parallel C++ $eMastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL /$fby James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian 205 $a1st ed. 2021. 210 $cSpringer Nature$d2021 210 1$aBerkeley, CA :$cApress :$cImprint: Apress,$d2021. 215 $a1 online resource (XXVI, 548 p. 338 illus., 280 illus. in color.) 300 $aIncludes index. 311 $a1-4842-5573-9 327 $aChapter 1: Introduction -- Chapter 2: Where code executes -- Chapter 3: Data management and ordering the uses of data -- Chapter 4: Expressing parallelism -- Chapter 5: Error handling -- Chapter 6: USM in detail -- Chapter 7: Buffers in detail -- Chapter 8: DAG scheduling in detail -- Chapter 9: Local memory and work-group barriers -- Chapter 10: Defining kernels -- Chapter 11: Vectors -- Chapter 12: Device-specific extension mechanism -- Chapter 13: Programming for GPUs -- Chapter 14: Programming for CPUs -- Chapter 15: Programming for FPGAs -- Chapter 16: Address spaces and multi_ptr -- Chapter 17: Using libraries -- Chapter 18: Working with OpenCL -- Chapter 19: Memory model and atomics. 330 $aLearn how to accelerate C++ programs using data parallelism. Data parallelism in C++ enables access to parallel resources in a modern heterogeneous system, freeing you from being locked into any particular computing device. Now a single C++ application can use any combination of devices?including GPUs, CPUs, FPGAs and AI ASICs?that are suitable to the problems at hand. This open access book enables C++ programmers to be at the forefront of this exciting and important new development that is helping to push computing to new levels. It is full of practical advice, detailed explanations, and code examples to illustrate key topics. This book teaches data-parallel programming using C++ and the SYCL standard from the Khronos Group and walks through everything needed to use SYCL for programming heterogeneous systems. The book begins by introducing data parallelism and foundational topics for effective use of SYCL and Data Parallel C++ (DPC++), the open source compiler used in this book. Later chapters cover advanced topics including error handling, hardware-specific programming, communication and synchronization, and memory model considerations. You will learn: ? How to accelerate C++ programs using data-parallel programming ? How to target multiple device types (e.g. CPU, GPU, FPGA) ? How to use SYCL and SYCL compilers ? How to connect with computing?s heterogeneous future via Intel?s oneAPI initiative. 606 $aHeterogeneous computing 606 $aC++ (Computer program language) 606 $aOpenCL (Computer program language) 615 0$aHeterogeneous computing. 615 0$aC++ (Computer program language) 615 0$aOpenCL (Computer program language) 676 $a005.13 700 $aReinders$b James$4aut$4http://id.loc.gov/vocabulary/relators/aut$0851755 702 $aAshbaugh$b Ben$4aut$4http://id.loc.gov/vocabulary/relators/aut 702 $aBrodman$b James$4aut$4http://id.loc.gov/vocabulary/relators/aut 702 $aKinsner$b Michael$4aut$4http://id.loc.gov/vocabulary/relators/aut 702 $aPennycook$b John$4aut$4http://id.loc.gov/vocabulary/relators/aut 702 $aTian$b Xinmin$4aut$4http://id.loc.gov/vocabulary/relators/aut 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910424954703321 996 $aData Parallel C++$91901797 997 $aUNINA