LEADER 05318nam 22006611 450 001 9910790726103321 005 20200520144314.0 010 $a1-84969-235-1 035 $a(CKB)2550000001179496 035 $a(EBL)1441790 035 $a(SSID)ssj0001139933 035 $a(PQKBManifestationID)11993240 035 $a(PQKBTitleCode)TC0001139933 035 $a(PQKBWorkID)11214286 035 $a(PQKB)10942546 035 $a(Au-PeEL)EBL1441790 035 $a(CaPaEBR)ebr10825550 035 $a(CaONFJC)MIL559635 035 $a(OCoLC)866858108 035 $a(CaSebORM)9781849692342 035 $a(MiAaPQ)EBC1441790 035 $a(PPN)227990153 035 $a(EXLCZ)992550000001179496 100 $a20140104d2013 uy 0 101 0 $aeng 135 $aurunu||||| 181 $ctxt 182 $cc 183 $acr 200 10$aOpenCL programming by example /$fRavishekhar Banger, Koushik Bhattacharyya 205 $a1st edition 210 1$aBirmingham :$cPackt Publishing,$d2013. 215 $a1 online resource (304 p.) 225 1 $aCommunity experience distilled 300 $aIncludes index. 311 $a1-84969-234-3 311 $a1-306-28384-1 327 $aCover; Copyright; Credits; About the Authors; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Hello OpenCL; Advances in computer architecture; Different parallel programming techniques; OpenMP; MPI; OpenACC; CUDA; CUDA or OpenCL?; Renderscripts; Hybrid parallel computing model; Introduction to OpenCL; Hardware and software vendors; Advanced Micro Devices, Inc. (AMD); NVIDIAŽ; IntelŽ; ARM MaliTM GPUs; OpenCL components; An example OpenCL program; Basic software requirements; Windows; Linux; Installing and setting up an OpenCL compliant computer; Installation steps 327 $aInstalling OpenCL on a Linux system with an AMD graphics card Installing OpenCL on a Linux system with an NVIDIA graphics card; Installing OpenCL on a Windows system with an AMD graphics card; Installing OpenCL on a Windows system with an NVIDIA graphics card; Apple OSX; Multiple installations; Implement the SAXPY routine in OpenCL; Summary; References; Chapter 2: OpenCL Architecture; Platform model; AMD A10 5800K APUs; AMD RadeonTM HD 7870 Graphics Processor; NVIDIAŽ GeForceŽ GTC 680 GPU; IntelŽ IVY bridge; Platform versions; Query Platforms; Query devices; Execution model; NDRange 327 $aOpenCL context OpenCL command queue; Memory model; Global memory; Constant memory; Local memory; Private memory; OpenCL ICD; What is an OpenCL ICD?; Application scaling; Summary; Chapter 3: OpenCL Buffer Objects; Memory Objects; Creating Subbuffer objects; Histogram calculation; Algorithm; OpenCL Kernel Code; The Host Code; Reading and writing buffers; Blocking_read and Blocking_write; Rectangular or cuboidal reads; Copying buffers; Mapping buffer objects; Querying buffer objects; Undefined behavior of the cl_mem objects; Summary; Chapter 4: OpenCL Images; Creating images 327 $aImage format descriptor cl_image_format Image details descriptor cl_image_desc; Passing image buffers to kernels; Samplers; Reading and writing buffers; Copying and filling images; Mapping image objects; Querying image objects; Image histogram computation; Summary; Chapter 5: OpenCL Program and Kernel Objects; Creating program objects; Creating and building program objects; OpenCL program building options; Querying program objects; Creating binary files; Offline and online compilation; SAXPY using the binary file; SPIR - Standard Portable Intermediate Representation; Creating kernel objects 327 $aSetting kernel arguments Executing the kernels; Querying kernel objects; Querying kernel argument; Releasing program and kernel objects; Built-in kernels; Summary; Chapter 6: Events and Synchronization; OpenCL events and monitoring of these events; OpenCL event synchronization models; No synchronization needed; Single device in-order usage; Synchronization needed; Single device and out-of-order queue; Multiple devices and different OpenCL contexts; Multiple devices and single OpenCL context; Coarse grained synchronization; Event based or fine grained synchronization 327 $aGetting information about cl_event 330 $aThis book follows an example-driven, simplified, and practical approach to using OpenCL for general purpose GPU programming.If you are a beginner in parallel programming and would like to quickly accelerate your algorithms using OpenCL, this book is perfect for you! You will find the diverse topics and case studies in this book interesting and informative. You will only require a good knowledge of C programming for this book, and an understanding of parallel implementations will be useful, but not necessary. 606 $aOpenCL (Computer program language) 606 $aParaelle programming (Computer science) 615 0$aOpenCL (Computer program language) 615 0$aParaelle programming (Computer science) 676 $a005.2/75 700 $aBanger$b Ravishekhar$01577941 701 $aBhattacharyya$b Koushik$01577942 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910790726103321 996 $aOpenCL programming by example$93856928 997 $aUNINA