000 04418nam a22005655i 4500
001 978-1-4842-5574-2
003 DE-He213
005 20240508091357.0
007 cr nn 008mamaa
008 201102s2021 xxu| s |||| 0|eng d
020 _a9781484255742
_9978-1-4842-5574-2
024 7 _a10.1007/978-1-4842-5574-2
_2doi
050 4 _aQA76.76.C65
072 7 _aUMC
_2bicssc
072 7 _aCOM010000
_2bisacsh
072 7 _aUMC
_2thema
082 0 4 _a005.45
_223
100 1 _aReinders, James.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
245 1 0 _aData Parallel C++
_h[electronic resource] :
_bMastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL /
_cby James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.
250 _a1st ed. 2021.
264 1 _aBerkeley, CA :
_bApress :
_bImprint: Apress,
_c2021.
300 _aXXVI, 548 p. 338 illus., 280 illus. in color.
_bonline resource.
336 _atext
_btxt
_2rdacontent
337 _acomputer
_bc
_2rdamedia
338 _aonline resource
_bcr
_2rdacarrier
347 _atext file
_bPDF
_2rda
505 0 _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.
506 0 _aOpen Access
520 _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.
650 0 _aCompilers (Computer programs).
650 0 _aMakerspaces.
650 1 4 _aCompilers and Interpreters.
650 2 4 _aMaker.
700 1 _aAshbaugh, Ben.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
700 1 _aBrodman, James.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
700 1 _aKinsner, Michael.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
700 1 _aPennycook, John.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
700 1 _aTian, Xinmin.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
710 2 _aSpringerLink (Online service)
773 0 _tSpringer Nature eBook
776 0 8 _iPrinted edition:
_z9781484255735
776 0 8 _iPrinted edition:
_z9781484255759
776 0 8 _iPrinted edition:
_z9781484278789
856 4 0 _uhttps://doi.org/10.1007/978-1-4842-5574-2
912 _aZDB-2-CWD
912 _aZDB-2-SXPC
912 _aZDB-2-SOB
999 _c37787
_d37787