LEADER 05478nam 2200697 a 450 001 9910828339503321 005 20200520144314.0 010 $a1-283-71652-6 010 $a0-12-405520-6 035 $a(CKB)2670000000276279 035 $a(EBL)1073028 035 $a(OCoLC)818851466 035 $a(SSID)ssj0000783439 035 $a(PQKBManifestationID)12347515 035 $a(PQKBTitleCode)TC0000783439 035 $a(PQKBWorkID)10753502 035 $a(PQKB)11510343 035 $a(Au-PeEL)EBL1073028 035 $a(CaPaEBR)ebr10619225 035 $a(CaONFJC)MIL402902 035 $a(PPN)170246671 035 $a(OCoLC)841325761 035 $a(OCoLC)ocn841325761 035 $a(FR-PaCSA)88809645 035 $a(CaSebORM)9780124058941 035 $a(MiAaPQ)EBC1073028 035 $a(EXLCZ)992670000000276279 100 $a20121115d2013 uy 0 101 0 $aeng 135 $aurunu||||| 181 $ctxt 182 $cc 183 $acr 200 00$aHeterogeneous computing with OpenCL /$fBenedict R. Gaster ... [et al.] 205 $aRev. OpenCL 1.2 ed. 210 $aAmsterdam ;$aBoston $cElsevier/MK$dc2013 215 $a1 online resource (309 p.) 300 $aDescription based upon print version of record. 311 $a0-12-405894-9 320 $aIncludes bibliographical references and index. 327 $aFront Cover; Heterogeneous Computing with OpenCL; Copyright; Contents; Foreword to the Revised OpenCL 1.2 Edition; Foreword to the First Edition; Preface; Our Heterogeneous World; OpenCL; This Text; Acknowledgments; About the Authors; Chapter 1: Introduction to Parallel Programming; Introduction; OpenCL; The Goals of This Book; Thinking Parallel; Concurrency and Parallel Programming Models; Threads and Shared Memory; Message-Passing Communication; Different Grains of Parallelism; Data Sharing and Synchronization; Structure; Reference; Further Reading and Relevant Websites 327 $aChapter 2: Introduction to OpenCL Introduction; The OpenCL Standard; The OpenCL Specification; Kernels and the OpenCL Execution Model; Platform and Devices; Host-Device Interaction; The Execution Environment; Contexts; Command Queues; Events; Memory Objects; Buffers; Images; Flush and Finish; Creating an OpenCL Program Object; The OpenCL Kernel; Memory Model; Writing Kernels; Full Source Code Example for Vector Addition; Vector Addition with C++ Wrapper; Summary; Reference; Chapter 3: OpenCL Device Architectures; Introduction; Hardware trade-offs 327 $aPerformance Increase by Frequency, and Its Limitations Superscalar Execution; VLIW; SIMD and Vector Processing; Hardware Multithreading; Multi-Core Architectures; Integration: Systems-on-Chip and the APU; Cache Hierarchies and Memory Systems; The architectural design space; CPU Designs; Low-Power CPUs; Mainstream Desktop CPUs; Intel Itanium 2; Niagara; GPU Architectures; Handheld GPUs; At the High End: AMD Radeon HD7970 and NVIDIA GTX580; APU and APU-Like Designs; Summary; References; Chapter 4: Basic OpenCL Examples; Introduction; Example Applications; Simple Matrix Multiplication Example 327 $aStep 1: Set Up Environment Step 2: Declare Buffers and Move Data; Step 3: Run time Kernel Compilation; Step 4: Run the Program; Step 5: Return Results to Host; Image Rotation Example; Step 1: Set Up Environment; Step 2: Declare Buffers and Move Data; Step 3: Run time Kernel Compilation; Step 4: Run the Program; Step 5: Read Result Back to Host; Image Convolution Example; Step 1: Create Image and Buffer Objects; Step 2: Write the Input Data; Step 3: Create Sampler Object; Step 4: Compile and Execute the Kernel; Step 5: Read the Result; The Convolution Kernel; Compiling OpenCL Host Applications 327 $aSummary Chapter 5: Understanding OpenCL's Concurrency and Execution Model; Introduction; Kernels, Work-Items, Workgroups, and the Execution Domain; OpenCL Synchronization: Kernels, Fences, and Barriers; Queuing and Global Synchronization; Memory Consistency in OpenCL; Events; Command Queues to Multiple Devices; Event Uses beyond Synchronization; User Events; Event Callbacks; Native Kernels; Command Barriers and Markers; The Host-Side Memory Model; Buffers; Manipulating Buffer Objects; Images; The Device-Side Memory Model; Device-Side Relaxed Consistency; Global Memory; Local Memory 327 $aConstant Memory 330 $aHeterogeneous Computing with OpenCL teaches OpenCL and parallel programming for complex systems that may include a variety of device architectures: multi-core CPUs, GPUs, and fully-integrated Accelerated Processing Units (APUs) such as AMD Fusion technology. Designed to work on multiple platforms and with wide industry support, OpenCL will help you more effectively program for a heterogeneous future. Written by leaders in the parallel computing and OpenCL communities, this book will give you hands-on OpenCL experience to address a range of fundamental parallel algorithms. The 606 $aOpenCL (Computer program language) 606 $aParallel programming (Computer science) 615 0$aOpenCL (Computer program language) 615 0$aParallel programming (Computer science) 676 $a005.2752 676 $a005.2752 701 $aGaster$b Benedict R$01667587 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910828339503321 996 $aHeterogeneous computing with OpenCL$94027515 997 $aUNINA