Data Parallel C++ : Programming Accelerated Systems Using C++ and SYCL / / by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.

"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 enabl...

Full description

Saved in:
Bibliographic Details
VerfasserIn:
Place / Publishing House:Berkeley, CA : : Apress :, Imprint: Apress,, 2023.
Year of Publication:2023
Edition:2nd ed. 2023.
Language:English
Physical Description:1 online resource (XXX, 630 p. 329 illus., 294 illus. in color.)
Tags: Add Tag
No Tags, Be the first to tag this record!
id 993628588104498
ctrlnum (CKB)5850000000446695
(DE-He213)978-1-4842-9691-2
(MiAaPQ)EBC30882798
(Au-PeEL)EBL30882798
(PPN)272919977
(OCoLC)1403550971
(EXLCZ)995850000000446695
collection bib_alma
record_format marc
spelling Reinders, James. author. aut http://id.loc.gov/vocabulary/relators/aut
Data Parallel C++ [electronic resource] : Programming Accelerated Systems Using C++ and SYCL / by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.
2nd ed. 2023.
Berkeley, CA : Apress : Imprint: Apress, 2023.
1 online resource (XXX, 630 p. 329 illus., 294 illus. in color.)
text txt rdacontent
computer c rdamedia
online resource cr rdacarrier
Open Access
Chapter 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: Unified Shared Memory -- Chapter 7: Buffers -- Chapter 8: Scheduling Kernels and Data Movement -- Chapter 9: Local Memory and Work-group Barriers -- Chapter 10: Defining Kernels -- Chapter 11: Vector and Math Arrays -- Chapter 12: Device Information and Kernel Specialization -- Chapter 13: Practical Tips -- Chapter 14: Common Parallel Patterns -- Chapter 15: Programming for GPUs -- Chapter 16: Programming for CPUs -- Chapter 17: Programming for FFGAs -- Chapter 18: Libraries -- Chapter 19: Memory Model and Atomics -- Chapter 20: Backend Interoperability -- Chapter 21: Migrating CUDA Code -- Epilogue.
"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. You Will Learn How to: 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.
Compilers (Computer programs).
Makerspaces.
Compilers and Interpreters.
Maker.
1-4842-9690-7
Ashbaugh, Ben. author. aut http://id.loc.gov/vocabulary/relators/aut
Brodman, James. author. aut http://id.loc.gov/vocabulary/relators/aut
Kinsner, Michael. author. aut http://id.loc.gov/vocabulary/relators/aut
Pennycook, John. author. aut http://id.loc.gov/vocabulary/relators/aut
Tian, Xinmin. author. aut http://id.loc.gov/vocabulary/relators/aut
language English
format Electronic
eBook
author Reinders, James.
Reinders, James.
Ashbaugh, Ben.
Brodman, James.
Kinsner, Michael.
Pennycook, John.
Tian, Xinmin.
spellingShingle Reinders, James.
Reinders, James.
Ashbaugh, Ben.
Brodman, James.
Kinsner, Michael.
Pennycook, John.
Tian, Xinmin.
Data Parallel C++ Programming Accelerated Systems Using C++ and SYCL /
Chapter 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: Unified Shared Memory -- Chapter 7: Buffers -- Chapter 8: Scheduling Kernels and Data Movement -- Chapter 9: Local Memory and Work-group Barriers -- Chapter 10: Defining Kernels -- Chapter 11: Vector and Math Arrays -- Chapter 12: Device Information and Kernel Specialization -- Chapter 13: Practical Tips -- Chapter 14: Common Parallel Patterns -- Chapter 15: Programming for GPUs -- Chapter 16: Programming for CPUs -- Chapter 17: Programming for FFGAs -- Chapter 18: Libraries -- Chapter 19: Memory Model and Atomics -- Chapter 20: Backend Interoperability -- Chapter 21: Migrating CUDA Code -- Epilogue.
author_facet Reinders, James.
Reinders, James.
Ashbaugh, Ben.
Brodman, James.
Kinsner, Michael.
Pennycook, John.
Tian, Xinmin.
Ashbaugh, Ben.
Ashbaugh, Ben.
Brodman, James.
Brodman, James.
Kinsner, Michael.
Kinsner, Michael.
Pennycook, John.
Pennycook, John.
Tian, Xinmin.
Tian, Xinmin.
author_variant j r jr
j r jr
b a ba
j b jb
m k mk
j p jp
x t xt
author_role VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
author2 Ashbaugh, Ben.
Ashbaugh, Ben.
Brodman, James.
Brodman, James.
Kinsner, Michael.
Kinsner, Michael.
Pennycook, John.
Pennycook, John.
Tian, Xinmin.
Tian, Xinmin.
author2_variant b a ba
j b jb
m k mk
j p jp
x t xt
author2_role VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
VerfasserIn
author_sort Reinders, James.
title Data Parallel C++ Programming Accelerated Systems Using C++ and SYCL /
title_sub Programming Accelerated Systems Using C++ and SYCL /
title_full Data Parallel C++ [electronic resource] : Programming Accelerated Systems Using C++ and SYCL / by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.
title_fullStr Data Parallel C++ [electronic resource] : Programming Accelerated Systems Using C++ and SYCL / by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.
title_full_unstemmed Data Parallel C++ [electronic resource] : Programming Accelerated Systems Using C++ and SYCL / by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.
title_auth Data Parallel C++ Programming Accelerated Systems Using C++ and SYCL /
title_new Data Parallel C++
title_sort data parallel c++ programming accelerated systems using c++ and sycl /
publisher Apress : Imprint: Apress,
publishDate 2023
physical 1 online resource (XXX, 630 p. 329 illus., 294 illus. in color.)
edition 2nd ed. 2023.
contents Chapter 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: Unified Shared Memory -- Chapter 7: Buffers -- Chapter 8: Scheduling Kernels and Data Movement -- Chapter 9: Local Memory and Work-group Barriers -- Chapter 10: Defining Kernels -- Chapter 11: Vector and Math Arrays -- Chapter 12: Device Information and Kernel Specialization -- Chapter 13: Practical Tips -- Chapter 14: Common Parallel Patterns -- Chapter 15: Programming for GPUs -- Chapter 16: Programming for CPUs -- Chapter 17: Programming for FFGAs -- Chapter 18: Libraries -- Chapter 19: Memory Model and Atomics -- Chapter 20: Backend Interoperability -- Chapter 21: Migrating CUDA Code -- Epilogue.
isbn 1-4842-9691-5
1-4842-9690-7
callnumber-first Q - Science
callnumber-subject QA - Mathematics
callnumber-label QA76
callnumber-sort QA 276.76 C65
illustrated Not Illustrated
dewey-hundreds 000 - Computer science, information & general works
dewey-tens 000 - Computer science, knowledge & systems
dewey-ones 005 - Computer programming, programs & data
dewey-full 005.45
dewey-sort 15.45
dewey-raw 005.45
dewey-search 005.45
oclc_num 1403550971
work_keys_str_mv AT reindersjames dataparallelcprogrammingacceleratedsystemsusingcandsycl
AT ashbaughben dataparallelcprogrammingacceleratedsystemsusingcandsycl
AT brodmanjames dataparallelcprogrammingacceleratedsystemsusingcandsycl
AT kinsnermichael dataparallelcprogrammingacceleratedsystemsusingcandsycl
AT pennycookjohn dataparallelcprogrammingacceleratedsystemsusingcandsycl
AT tianxinmin dataparallelcprogrammingacceleratedsystemsusingcandsycl
status_str n
ids_txt_mv (CKB)5850000000446695
(DE-He213)978-1-4842-9691-2
(MiAaPQ)EBC30882798
(Au-PeEL)EBL30882798
(PPN)272919977
(OCoLC)1403550971
(EXLCZ)995850000000446695
carrierType_str_mv cr
is_hierarchy_title Data Parallel C++ Programming Accelerated Systems Using C++ and SYCL /
author2_original_writing_str_mv noLinkedField
noLinkedField
noLinkedField
noLinkedField
noLinkedField
noLinkedField
noLinkedField
noLinkedField
noLinkedField
noLinkedField
_version_ 1796653702586564608
fullrecord <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>04687nam a22005415i 4500</leader><controlfield tag="001">993628588104498</controlfield><controlfield tag="005">20231003180929.0</controlfield><controlfield tag="006">m o d | </controlfield><controlfield tag="007">cr nn 008mamaa</controlfield><controlfield tag="008">231003s2023 xxu| o |||| 0|eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1-4842-9691-5</subfield></datafield><datafield tag="024" ind1="7" ind2=" "><subfield code="a">10.1007/978-1-4842-9691-2</subfield><subfield code="2">doi</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(CKB)5850000000446695</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-He213)978-1-4842-9691-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(MiAaPQ)EBC30882798</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(Au-PeEL)EBL30882798</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(PPN)272919977</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1403550971</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(EXLCZ)995850000000446695</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">MiAaPQ</subfield><subfield code="b">eng</subfield><subfield code="e">rda</subfield><subfield code="e">pn</subfield><subfield code="c">MiAaPQ</subfield><subfield code="d">MiAaPQ</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.76.C65</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">UMC</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">COM051010</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">UMC</subfield><subfield code="2">thema</subfield></datafield><datafield tag="082" ind1="0" ind2="4"><subfield code="a">005.45</subfield><subfield code="2">23</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Reinders, James.</subfield><subfield code="e">author.</subfield><subfield code="4">aut</subfield><subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Data Parallel C++</subfield><subfield code="h">[electronic resource] :</subfield><subfield code="b">Programming Accelerated Systems Using C++ and SYCL /</subfield><subfield code="c">by James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2nd ed. 2023.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Berkeley, CA :</subfield><subfield code="b">Apress :</subfield><subfield code="b">Imprint: Apress,</subfield><subfield code="c">2023.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (XXX, 630 p. 329 illus., 294 illus. in color.) </subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="506" ind1="0" ind2=" "><subfield code="a">Open Access</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Chapter 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: Unified Shared Memory -- Chapter 7: Buffers -- Chapter 8: Scheduling Kernels and Data Movement -- Chapter 9: Local Memory and Work-group Barriers -- Chapter 10: Defining Kernels -- Chapter 11: Vector and Math Arrays -- Chapter 12: Device Information and Kernel Specialization -- Chapter 13: Practical Tips -- Chapter 14: Common Parallel Patterns -- Chapter 15: Programming for GPUs -- Chapter 16: Programming for CPUs -- Chapter 17: Programming for FFGAs -- Chapter 18: Libraries -- Chapter 19: Memory Model and Atomics -- Chapter 20: Backend Interoperability -- Chapter 21: Migrating CUDA Code -- Epilogue.</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">"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. You Will Learn How to: 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.</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Compilers (Computer programs).</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Makerspaces.</subfield></datafield><datafield tag="650" ind1="1" ind2="4"><subfield code="a">Compilers and Interpreters.</subfield></datafield><datafield tag="650" ind1="2" ind2="4"><subfield code="a">Maker.</subfield></datafield><datafield tag="776" ind1=" " ind2=" "><subfield code="z">1-4842-9690-7</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Ashbaugh, Ben.</subfield><subfield code="e">author.</subfield><subfield code="4">aut</subfield><subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Brodman, James.</subfield><subfield code="e">author.</subfield><subfield code="4">aut</subfield><subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Kinsner, Michael.</subfield><subfield code="e">author.</subfield><subfield code="4">aut</subfield><subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Pennycook, John.</subfield><subfield code="e">author.</subfield><subfield code="4">aut</subfield><subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Tian, Xinmin.</subfield><subfield code="e">author.</subfield><subfield code="4">aut</subfield><subfield code="4">http://id.loc.gov/vocabulary/relators/aut</subfield></datafield><datafield tag="906" ind1=" " ind2=" "><subfield code="a">BOOK</subfield></datafield><datafield tag="ADM" ind1=" " ind2=" "><subfield code="b">2024-02-23 22:44:20 Europe/Vienna</subfield><subfield code="f">system</subfield><subfield code="c">marc21</subfield><subfield code="a">2023-10-21 18:37:38 Europe/Vienna</subfield><subfield code="g">false</subfield></datafield><datafield tag="AVE" ind1=" " ind2=" "><subfield code="i">DOAB Directory of Open Access Books</subfield><subfield code="P">DOAB Directory of Open Access Books</subfield><subfield code="x">https://eu02.alma.exlibrisgroup.com/view/uresolver/43ACC_OEAW/openurl?u.ignore_date_coverage=true&amp;portfolio_pid=5350551780004498&amp;Force_direct=true</subfield><subfield code="Z">5350551780004498</subfield><subfield code="b">Available</subfield><subfield code="8">5350551780004498</subfield></datafield></record></collection>