Heterogeneous Computing with OpenCLby Benedict Gaster
Pub. Date: 08/31/2011
Publisher: Elsevier Science
Heterogeneous 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/i>… See more details below
Heterogeneous 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 authors explore memory spaces, optimization techniques, graphics interoperability, extensions, and debugging and profiling. Intended to support a parallel programming course, Heterogeneous Computing with OpenCL includes detailed examples throughout, plus additional online exercises and other supporting materials.
- Explains principles and strategies to learn parallel programming with OpenCL, from understanding the four abstraction models to thoroughly testing and debugging complete applications.
- Covers image processing, web plugins, particle simulations, video editing, performance optimization, and more.
- Shows how OpenCL maps to an example target architecture and explains some of the tradeoffs associated with mapping to various architectures
- Addresses a range of fundamental programming techniques, with multiple examples and case studies that demonstrate OpenCL extensions for a variety of hardware platforms
- Elsevier Science
- Publication date:
- Product dimensions:
- 7.50(w) x 9.10(h) x 0.60(d)
Table of Contents
- Introduction to Parallel Programming
- Introduction to OpenCL
- OpenCL Device Architectures
- Basic OpenCL Examples
- Understanding OpenCL's Concurrency and Execution Model
- Dissecting a CPU/GPU OpenCL Implementation
- OpenCL Case Study: Convolution
- OpenCL Case Study: Video Processing
- OpenCL Case Study: Histogram
- OpenCL Case Study: Mixed Particle Simulation
- OpenCL Extensions
- OpenCL Profiling and Debugging
and post it to your social network
Most Helpful Customer Reviews
See all customer reviews >
Are you a programmer or software engineer who needs help in leveraging the power and flexibility of the OpenCL programming standard. If you are, then this book is for you! Authors Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, and Dana Schaa, have done an outstanding job of writing a book which aims to teach students how to program heterogeneous environments. Gaster, Howes, Kaeli, Mistry and Schaa, begin by introducing you to OpenCL, including key concepts, such as kernels, platforms, and devices. In addition, the authors present some of the architectures that OpenCL does or might target, including x86 CPUs, GPUs, and APUs. They then introduce the basic matrix multiplication, image rotation, and convolution implementations to help the reader learn OpenCL by example. Then, they discuss the concurrency and execution in the OpenCL programming model. The authors continue by showing you how OpenCL maps to an example architecture. In addition, the authors present a case study that accelerates a convolution algorithm. They then present another case study that targets video processing, by utilizing OpenCL to build performant image processing effects that can be applied to video streams. The authors then further present another case study examining how to optimize the performance of a histogramming application. Then, the authors discuss how to leverage a heterogeneous CPU-GPU environment. They continue by showing you how to use OpenCL extensions using the device fission and double precision extensions as examples. Next, the authors introduce you to the reader; as well as, debugging and analyzing OpenCL programs. Finally, they provide an overview of performance trade-offs with regards to WebCL. This most excellent book is an attempt by the authors to show developers and students how to leverage the OpenCL framework to build interesting and useful applications. Perhaps more importantly, the authors hope that the reader will embrace this new programming framework and explore the full benefits of heterogeneous computing that it provides!