Heterogeneous Computing with OpenCL

Revised OpenCL 1.2 Edition


  • Benedict Gaster, OpenCL Architect, AMD
  • Lee Howes, Member of Technical Staff, AMD
  • David Kaeli, Northeastern University, Boston, MA, USA
  • Perhaad Mistry, Northeastern University, Boston, MA, USA
  • Dana Schaa, Northeastern University, Boston, MA, USA

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.

View full description


Software engineers, programmers, hardware engineers, students / advanced students


Book information

  • Published: November 2012
  • ISBN: 978-0-12-405894-1


"With parallel computing now in the mainstream, this book provides an excellent reference on the state-of-the-art techniques in accelerating applications on CPU-GPU systems."--David A. Bader, Georgia Institute of Technology

"Intended for software architects and engineers, this guide to OpenCL examines potential uses and practical application of the cross platform programming language for heterogeneous computing. The work explores the use of OpenCL to design and produce scalable applications that have the ability to be optimized for processor core and GPU usage. Chapters cover an overview of OpenCL, basic examples, CPU/GPU implementation and extensions. Illustrations and sample code, as well as sections outlining case studies for the use of OpenCL in several common situations, are provided."--SciTech Book News

"I always enjoy reviewing later editions of a book…this book does not disappoint. It is definitely worth the time spent reading it."--ComputingReviews.com, September 27, 2013

Table of Contents

    1. Introduction to Parallel Programming
    2. Introduction to OpenCL
    3. OpenCL Device Architectures
    4. Basic OpenCL Examples
    5. Understanding OpenCL's Concurrency and Execution Model
    6. Dissecting a CPU/GPU OpenCL Implementation
    7. Data Management
    8. OpenCL Case Study: Convolution
    9. OpenCL Case Study: Histogram
    10. OpenCL Case Study: Mixed Particle Simulation
    11. OpenCL Extensions
    12. Foreign Lands: Plugging OpenCL In
    13. OpenCL Profiling and Debugging
    14. Performance Optimization of an Image Analysis Application