Data Parallel C++ : (Record no. 2067)
[ view plain ]
000 -Satzkennung | |
---|---|
Kontrollfeld mit fester Länge | 11877nam a22005053i 4500 |
001 - Kontrollnummer | |
Kontrollfeld | EBC6383586 |
003 - Kontrollnummer Identifier | |
Kontrollfeld | MiAaPQ |
005 - Datum und Zeit der letzten Transaktion | |
Kontrollfeld | 20220324112726.0 |
006 - Datenelemente mit fester Länge - Weitere Materialmerkmale | |
Kontrollfeld mit fester Länge | m o d | |
007 - Feld mit fester Länge zur physischen Beschreibung - Allgemeine Information | |
Kontrollfeld mit fester Länge | cr cnu|||||||| |
008 - Feld mit fester Länge zur physischen Beschreibung - Allgemeine Angaben | |
Kontrollfeld mit fester Länge | 220324s2020 xx o ||||0 eng d |
020 ## - Internationale Standardbuchnummer | |
Internationale Standardbuchnummer | 9781484255742 |
Nähere Angaben | (electronic bk.) |
020 ## - Internationale Standardbuchnummer | |
Gelöschte/ungültige ISBN | 9781484255735 |
035 ## - Systemkontrollnummer | |
System-Kontrollnummer | (MiAaPQ)EBC6383586 |
035 ## - Systemkontrollnummer | |
System-Kontrollnummer | (Au-PeEL)EBL6383586 |
035 ## - Systemkontrollnummer | |
System-Kontrollnummer | (OCoLC)1204226016 |
040 ## - Katalogisierungsquelle | |
Original-Katalogisierungsstelle | MiAaPQ |
Katalogisierungssprache | eng |
Beschreibungsfestlegungen | rda |
-- | pn |
Übertragungsstelle | MiAaPQ |
Bearbeitungsstelle | MiAaPQ |
050 #4 - Signatur der Library of Congress | |
Notation | QA76.76.C65 |
100 1# - Haupteintragung - Personenname | |
Personenname | Reinders, James. |
245 10 - Titel | |
Titel | Data Parallel C++ : |
Zusatz zum Titel | Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL. |
264 #1 - Produktion, Veröffentlichung, Distribution, Herstellung und Urheberrechtsvermerk | |
Herstellungs-, Veröffentlichungs- Vertriebs-, Erzeugungsort | Berkeley, CA : |
Produzent, Herausgeber, Distributor, Hersteller | Apress L. P., |
Datum der Herstellung, der Veröffentlichung, des Vertriebs oder des Urheberschutzvermerks | 2020. |
264 #4 - Produktion, Veröffentlichung, Distribution, Herstellung und Urheberrechtsvermerk | |
Datum der Herstellung, der Veröffentlichung, des Vertriebs oder des Urheberschutzvermerks | �2021. |
300 ## - Physische Beschreibung | |
Umfang | 1 online resource (565 pages) |
336 ## - Inhaltstyp | |
Inhaltstypterm | text |
Inhaltstypcode | txt |
Quelle | rdacontent |
337 ## - Medientyp | |
Bezeichnung des Medientyps | computer |
Medientypcode | c |
Quelle | rdamedia |
338 ## - Datenträgertyp | |
Datenträgertypbezeichnung | online resource |
Datenträgertypcode | cr |
Quelle | rdacarrier |
505 0# - Fußnote zu strukturierten Inhaltsangaben | |
Fußnote zu strukturierten Inhaltsangaben | Intro -- Table of Contents -- About the Authors -- Preface -- Acknowledgments -- Chapter 1: Introduction -- Read the Book, Not the Spec -- SYCL 1.2.1 vs. SYCL 2020, and DPC++ -- Getting a DPC++ Compiler -- Book GitHub -- Hello, World! and a SYCL Program Dissection -- Queues and Actions -- It Is All About Parallelism -- Throughput -- Latency -- Think Parallel -- Amdahl and Gustafson -- Scaling -- Heterogeneous Systems -- Data-Parallel Programming -- Key Attributes of DPC++ and SYCL -- Single-Source -- Host -- Devices -- Sharing Devices -- Kernel Code -- Kernel: Vector Addition (DAXPY) -- Asynchronous Task Graphs -- Race Conditions When We Make a Mistake -- C++ Lambda Functions -- Portability and Direct Programming -- Concurrency vs. Parallelism -- Summary -- Chapter 2: Where Code Executes -- Single-Source -- Host Code -- Device Code -- Choosing Devices -- Method#1: Run on a Device of Any Type -- Queues -- Binding a Queue to a Device, When Any Device Will Do -- Method#2: Using the Host Device for Development and Debugging -- Method#3: Using a GPU (or Other Accelerators) -- Device Types -- Accelerator Devices -- Device Selectors -- When Device Selection Fails -- Method#4: Using Multiple Devices -- Method#5: Custom (Very Specific) Device Selection -- device_selector Base Class -- Mechanisms to Score a Device -- Three Paths to Device Code Execution on CPU -- Creating Work on a Device -- Introducing the Task Graph -- Where Is the Device Code? -- Actions -- Fallback -- Summary -- Chapter 3: Data Management -- Introduction -- The Data Management Problem -- Device Local vs. Device Remote -- Managing Multiple Memories -- Explicit Data Movement -- Implicit Data Movement -- Selecting the Right Strategy -- USM, Buffers, and Images -- Unified Shared Memory -- Accessing Memory Through Pointers -- USM and Data Movement -- Explicit Data Movement in USM. |
505 8# - Fußnote zu strukturierten Inhaltsangaben | |
Fußnote zu strukturierten Inhaltsangaben | Implicit Data Movement in USM -- Buffers -- Creating Buffers -- Accessing Buffers -- Access Modes -- Ordering the Uses of Data -- In-order Queues -- Out-of-Order (OoO) Queues -- Explicit Dependences with Events -- Implicit Dependences with Accessors -- Choosing a Data Management Strategy -- Handler Class: Key Members -- Summary -- Chapter 4: Expressing Parallelism -- Parallelism Within Kernels -- Multidimensional Kernels -- Loops vs. Kernels -- Overview of Language Features -- Separating Kernels from Host Code -- Different Forms of Parallel Kernels -- Basic Data-Parallel Kernels -- Understanding Basic Data-Parallel Kernels -- Writing Basic Data-Parallel Kernels -- Details of Basic Data-Parallel Kernels -- The range Class -- The id Class -- The item Class -- Explicit ND-Range Kernels -- Understanding Explicit ND-Range Parallel Kernels -- Work-Items -- Work-Groups -- Sub-Groups -- Writing Explicit ND-Range Data-Parallel Kernels -- Details of Explicit ND-Range Data-Parallel Kernels -- The nd_range Class -- The nd_item Class -- The group Class -- The sub_group Class -- Hierarchical Parallel Kernels -- Understanding Hierarchical Data-Parallel Kernels -- Writing Hierarchical Data-Parallel Kernels -- Details of Hierarchical Data-Parallel Kernels -- The h_item Class -- The private_memory Class -- Mapping Computation to Work-Items -- One-to-One Mapping -- Many-to-One Mapping -- Choosing a Kernel Form -- Summary -- Chapter 5: Error Handling -- Safety First -- Types of Errors -- Let's Create Some Errors! -- Synchronous Error -- Asynchronous Error -- Application Error Handling Strategy -- Ignoring Error Handling -- Synchronous Error Handling -- Asynchronous Error Handling -- The Asynchronous Handler -- Invocation of the Handler -- Errors on a Device -- Summary -- Chapter 6: Unified Shared Memory -- Why Should We Use USM? -- Allocation Types -- Device Allocations. |
505 8# - Fußnote zu strukturierten Inhaltsangaben | |
Fußnote zu strukturierten Inhaltsangaben | Host Allocations -- Shared Allocations -- Allocating Memory -- What Do We Need to Know? -- Multiple Styles -- Allocations �a la C -- Allocations �a la C++ -- C++ Allocators -- Deallocating Memory -- Allocation Example -- Data Management -- Initialization -- Data Movement -- Explicit -- Implicit -- Migration -- Fine-Grained Control -- Queries -- Summary -- Chapter 7: Buffers -- Buffers -- Creation -- Buffer Properties -- use_host_ptr -- use_mutex -- context_bound -- What Can We Do with a Buffer? -- Accessors -- Accessor Creation -- What Can We Do with an Accessor? -- Summary -- Chapter 8: Scheduling Kernels and Data Movement -- What Is Graph Scheduling? -- How Graphs Work in DPC++ -- Command Group Actions -- How Command Groups Declare Dependences -- Examples -- When Are the Parts of a CG Executed? -- Data Movement -- Explicit -- Implicit -- Synchronizing with the Host -- Summary -- Chapter 9: Communication and Synchronization -- Work-Groups and Work-Items -- Building Blocks for Efficient Communication -- Synchronization via Barriers -- Work-Group Local Memory -- Using Work-Group Barriers and Local Memory -- Work-Group Barriers and Local Memory in ND-Range Kernels -- Local Accessors -- Synchronization Functions -- A Full ND-Range Kernel Example -- Work-Group Barriers and Local Memory in Hierarchical Kernels -- Scopes for Local Memory and Barriers -- A Full Hierarchical Kernel Example -- Sub-Groups -- Synchronization via Sub-Group Barriers -- Exchanging Data Within a Sub-Group -- A Full Sub-Group ND-Range Kernel Example -- Collective Functions -- Broadcast -- Votes -- Shuffles -- Loads and Stores -- Summary -- Chapter 10: Defining Kernels -- Why Three Ways to Represent a Kernel? -- Kernels As Lambda Expressions -- Elements of a Kernel Lambda Expression -- Naming Kernel Lambda Expressions -- Kernels As Named Function Objects. |
505 8# - Fußnote zu strukturierten Inhaltsangaben | |
Fußnote zu strukturierten Inhaltsangaben | Elements of a Kernel Named Function Object -- Interoperability with Other APIs -- Interoperability with API-Defined Source Languages -- Interoperability with API-Defined Kernel Objects -- Kernels in Program Objects -- Summary -- Chapter 11: Vectors -- How to Think About Vectors -- Vector Types -- Vector Interface -- Load and Store Member Functions -- Swizzle Operations -- Vector Execution Within a Parallel Kernel -- Vector Parallelism -- Summary -- Chapter 12: Device Information -- Refining Kernel Code to Be More Prescriptive -- How to Enumerate Devices and Capabilities -- Custom Device Selector -- Being Curious: get_info< -- > -- -- Being More Curious: Detailed Enumeration Code -- Inquisitive: get_info< -- > -- -- Device Information Descriptors -- Device-Specific Kernel Information Descriptors -- The Specifics: Those of "Correctness" -- Device Queries -- Kernel Queries -- The Specifics: Those of "Tuning/Optimization" -- Device Queries -- Kernel Queries -- Runtime vs. Compile-Time Properties -- Summary -- Chapter 13: Practical Tips -- Getting a DPC++ Compiler and Code Samples -- Online Forum and Documentation -- Platform Model -- Multiarchitecture Binaries -- Compilation Model -- Adding SYCL to Existing C++ Programs -- Debugging -- Debugging Kernel Code -- Debugging Runtime Failures -- Initializing Data and Accessing Kernel Outputs -- Multiple Translation Units -- Performance Implications of Multiple Translation Units -- When Anonymous Lambdas Need Names -- Migrating from CUDA to SYCL -- Summary -- Chapter 14: Common Parallel Patterns -- Understanding the Patterns -- Map -- Stencil -- Reduction -- Scan -- Pack and Unpack -- Pack -- Unpack -- Using Built-In Functions and Libraries -- The DPC++ Reduction Library -- The reduction Class -- The reducer Class -- User-Defined Reductions -- oneAPI DPC++ Library -- Group Functions. |
505 8# - Fußnote zu strukturierten Inhaltsangaben | |
Fußnote zu strukturierten Inhaltsangaben | Direct Programming -- Map -- Stencil -- Reduction -- Scan -- Pack and Unpack -- Pack -- Unpack -- Summary -- For More Information -- Chapter 15: Programming for GPUs -- Performance Caveats -- How GPUs Work -- GPU Building Blocks -- Simpler Processors (but More of Them) -- Expressing Parallelism -- Expressing More Parallelism -- Simplified Control Logic (SIMD Instructions) -- Predication and Masking -- SIMD Efficiency -- SIMD Efficiency and Groups of Items -- Switching Work to Hide Latency -- Offloading Kernels to GPUs -- SYCL Runtime Library -- GPU Software Drivers -- GPU Hardware -- Beware the Cost of Offloading! -- Transfers to and from Device Memory -- GPU Kernel Best Practices -- Accessing Global Memory -- Accessing Work-Group Local Memory -- Avoiding Local Memory Entirely with Sub-Groups -- Optimizing Computation Using Small Data Types -- Optimizing Math Functions -- Specialized Functions and Extensions -- Summary -- For More Information -- Chapter 16: Programming for CPUs -- Performance Caveats -- The Basics of a General-Purpose CPU -- The Basics of SIMD Hardware -- Exploiting Thread-Level Parallelism -- Thread Affinity Insight -- Be Mindful of First Touch to Memory -- SIMD Vectorization on CPU -- Ensure SIMD Execution Legality -- SIMD Masking and Cost -- Avoid Array-of-Struct for SIMD Efficiency -- Data Type Impact on SIMD Efficiency -- SIMD Execution Using single_task -- Summary -- Chapter 17: Programming for FPGAs -- Performance Caveats -- How to Think About FPGAs -- Pipeline Parallelism -- Kernels Consume Chip "Area" -- When to Use an FPGA -- Lots and Lots of Work -- Custom Operations or Operation Widths -- Scalar Data Flow -- Low Latency and Rich Connectivity -- Customized Memory Systems -- Running on an FPGA -- Compile Times -- The FPGA Emulator -- FPGA Hardware Compilation Occurs "Ahead-of-Time" -- Writing Kernels for FPGAs. |
505 8# - Fußnote zu strukturierten Inhaltsangaben | |
Fußnote zu strukturierten Inhaltsangaben | Exposing Parallelism. |
588 ## - Anmerkung zur Ausgabe, zum Teil oder zur Iteration, die/der als Grunlage für die Identifizierung der Ressource verwendet wird | |
Anmerkung zur Ausgabe, zum Teil oder zur Iteration, die/der als Grunlage für die Identifizierung der Ressource verwendet wird | Description based on publisher supplied metadata and other sources. |
590 ## - Lokale Fußnote (RLIN) | |
Local note | Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2022. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries. |
655 #4 - Indexierungsterm - Genre/Form | |
Genre/Form oder fokussierter Term | Electronic books. |
700 1# - Nebeneintragung - Personenname | |
Personenname | Ashbaugh, Ben. |
700 1# - Nebeneintragung - Personenname | |
Personenname | Brodman, James. |
700 1# - Nebeneintragung - Personenname | |
Personenname | Kinsner, Michael. |
700 1# - Nebeneintragung - Personenname | |
Personenname | Pennycook, John. |
700 1# - Nebeneintragung - Personenname | |
Personenname | Tian, Xinmin. |
776 08 - Andere physische Form | |
Verweisungsphrase | Print version: |
Haupteintragung | Reinders, James |
Titel | Data Parallel C++ |
Ort, Verlag und Erscheinungsjahr | Berkeley, CA : Apress L. P.,c2020 |
Internationale Standardbuchnummer | 9781484255735 |
797 2# - LOCAL ADDED ENTRY--CORPORATE NAME (RLIN) | |
Körperschafts- oder Gebietskörperschaftsname als Eintragungselement | ProQuest (Firm) |
856 40 - Elektronische Adresse und Zugriff | |
URL | <a href="https://www.nbs.de/bibliothek/faq">https://www.nbs.de/bibliothek/faq</a> |
OPAC-Notiz | Wie greife ich auf das E-Book zu? |
856 40 - Elektronische Adresse und Zugriff | |
URL | <a href="https://ebookcentral.proquest.com/lib/nbsde/detail.action?docID=6383586">https://ebookcentral.proquest.com/lib/nbsde/detail.action?docID=6383586</a> |
OPAC-Notiz | Click to View |
No items available.