A comprehensive guide on OpenCL Programming with examples /
This 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...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Otros Autores: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Publishing,
2013.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Cover; 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.
- Installing OpenCL on a Linux system with an AMD graphics cardInstalling 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.
- OpenCL contextOpenCL 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.
- Image format descriptor cl_image_formatImage 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.
- Setting kernel argumentsExecuting 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.