LEADER 04848nam 2200649Ia 450 001 9910785993003321 005 20230124190547.0 010 $a1-299-33347-8 010 $a1-61499-030-1 035 $a(CKB)2670000000261539 035 $a(EBL)1035215 035 $a(OCoLC)812180739 035 $a(SSID)ssj0000739719 035 $a(PQKBManifestationID)12350736 035 $a(PQKBTitleCode)TC0000739719 035 $a(PQKBWorkID)10698854 035 $a(PQKB)10338668 035 $a(MiAaPQ)EBC1035215 035 $a(Au-PeEL)EBL1035215 035 $a(CaPaEBR)ebr10607548 035 $a(CaONFJC)MIL464597 035 $a(EXLCZ)992670000000261539 100 $a20120928d2012 uy 0 101 0 $aeng 135 $aur|n|---||||| 181 $ctxt 182 $cc 183 $acr 200 10$aUsing OpenCL$b[electronic resource] $eprogramming massively parallel computers /$fJanusz Kowalik and Tadeusz Puz?niakowski 210 $aAmsterdam $cIOS Press$dc2012 215 $a1 online resource (312 p.) 225 0$aAdvances in parallel computing ;$vv. 21 300 $aDescription based upon print version of record. 311 $a1-61499-029-8 320 $aIncludes bibliographical references and index. 327 $aTitle Page; Preface; Contents; Introduction; Existing Standard Parallel Programming Systems; MPI; OpenMP; Two Parallelization Strategies: Data Parallelism and Task Parallelism; Data Parallelism; Task Parallelism; Example; History and Goals of OpenCL; Origins of Using GPU in General Purpose Computing; Short History of OpenCL; Heterogeneous Computer Memories and Data Transfer; Heterogeneous Computer Memories; Data Transfer; The Fourth Generation CUDA; Host Code; Phase a. Initialization and Creating Context; Phase b. Kernel Creation, Compilation and Preparations for Kernel Execution 327 $aPhase c. Creating Command Queues and Kernel ExecutionFinalization and Releasing Resource; Applications of Heterogeneous Computing; Accelerating Scientific/Engineering Applications; Conjugate Gradient Method; Jacobi Method; Power Method; Monte Carlo Methods; Conclusions; Benchmarking CGM; Introduction; Additional CGM Description; Heterogeneous Machine; Algorithm Implementation and Timing Results; Conclusions; OpenCL Fundamentals; OpenCL Overview; What is OpenCL; CPU + Accelerators; Massive Parallelism Idea; Work Items and Workgroups; OpenCL Execution Model; OpenCL Memory Structure 327 $aOpenCL C Language for Programming KernelsQueues, Events and Context; Host Program and Kernel; Data Parallelism in OpenCL; Task Parallelism in OpenCL; How to Start Using OpenCL; Header Files; Libraries; Compilation; Platforms and Devices; OpenCL Platform Properties; Devices Provided by Platform; OpenCL Platforms - C++; OpenCL Context to Manage Devices; Different Types of Devices; CPU Device Type; GPU Device Type; Accelerator; Different Device Types - Summary; Context Initialization - by Device Type; Context Initialization - Selecting Particular Device; Getting Information about Context 327 $aOpenCL Context to Manage Devices - C++Error Handling; Checking Error Codes; Using Exceptions - Available in C++; Using Custom Error Messages; Command Queues; In-order Command Queue; Out-of-order Command Queue; Command Queue Control; Profiling Basics; Profiling Using Events - C example; Profiling Using Events - C++ example; Work-Items and Work-Groups; Information About Index Space from a Kernel; NDRange Kernel Execution; Task Execution; Using Work Offset; OpenCL Memory; Different Memory Regions - the Kernel Perspective; Relaxed Memory Consistency 327 $aGlobal and Constant Memory Allocation - Host CodeMemory Transfers - the Host Code; Programming and Calling Kernel; Loading and Compilation of an OpenCL Program; Kernel Invocation and Arguments; Kernel Declaration; Supported Scalar Data Types; Vector Data Types and Common Functions; Synchronization Functions; Counting Parallel Sum; Parallel Sum - Kernel; Parallel Sum - Host Program; Structure of the OpenCL Host Program; Initialization; Preparation of OpenCL Programs; Using Binary OpenCL Programs; Computation; Release of Resources; Structure of OpenCL host Programs in C++; Initialization 327 $aPreparation of OpenCL Programs 606 $aOpenCL (Computer program language) 606 $aParallel computers 606 $aParallel programming (Computer science) 615 0$aOpenCL (Computer program language) 615 0$aParallel computers. 615 0$aParallel programming (Computer science) 676 $a005.2752 700 $aKowalik$b Janusz S$0104295 701 $aPuz?niakowski$b Tadeusz$01560332 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910785993003321 996 $aUsing OpenCL$93826212 997 $aUNINA