Heterogeneous Computing with OpenCL - 2nd Edition - ISBN: 9780124058941, 9780124055209

Heterogeneous Computing with OpenCL

2nd Edition

Revised OpenCL 1.2 Edition

eBook ISBN: 9780124055209
Paperback ISBN: 9780124058941
Imprint: Morgan Kaufmann
Published Date: 13th November 2012
Page Count: 308
Sales tax will be calculated at check-out Price includes VAT/GST
Price includes VAT/GST
× DRM-Free

Easy - Download and start reading immediately. There’s no activation process to access eBooks; all eBooks are fully searchable, and enabled for copying, pasting, and printing.

Flexible - Read on multiple operating systems and devices. Easily read eBooks on smart phones, computers, or any eBook readers, including Kindle.

Open - Buy once, receive and download all available eBook formats, including PDF, EPUB, and Mobi (for Kindle).

Institutional Access

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.


Heterogeneous Computing with OpenCL, Second Edition 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. It is the first textbook that presents OpenCL programming appropriate for the classroom and is intended to support a parallel programming course. Students will come away from this text with hands-on experience and significant knowledge of the syntax and use of OpenCL to address a range of fundamental parallel algorithms.

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, Heterogeneous Computing with OpenCL explores memory spaces, optimization techniques, graphics interoperability, extensions, and debugging and profiling. It includes detailed examples throughout, plus additional online exercises and other supporting materials that can be downloaded at http://www.heterogeneouscompute.org/?page_id=7

This book will appeal to software engineers, programmers, hardware engineers, and students/advanced students.

Key Features

  • 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


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

Table of Contents

Foreword to the Revised OpenCL 1.2 Edition

Foreword to the First Edition


Our Heterogeneous World


This Text


About the Authors

Chapter 1. Introduction to Parallel Programming



The Goals of This Book

Thinking Parallel

Concurrency and Parallel Programming Models



Further Reading and Relevant Websites

Chapter 2. Introduction to OpenCL


Platform and Devices

The Execution Environment

Memory Model

Writing Kernels

Full Source Code Example for Vector Addition

Vector Addition with C++ Wrapper



Chapter 3. OpenCL Device Architectures


Hardware trade-offs

The architectural design space



Chapter 4. Basic OpenCL Examples


Example Applications

Compiling OpenCL Host Applications


Chapter 5. Understanding OpenCL’s Concurrency and Execution Model


Kernels, Work-Items, Workgroups, and the Execution Domain

OpenCL Synchronization: Kernels, Fences, and Barriers

Queuing and Global Synchronization

The Host-Side Memory Model

The Device-Side Memory Model


Chapter 6. Dissecting a CPU/GPU OpenCL Implementation


OpenCL on an AMD Bulldozer CPU

OpenCL on the AMD Radeon HD7970 GPU

Memory Performance Considerations in OpenCL



Chapter 7. Data Management

Memory management

Data transfer in a discrete environment

Data placement in a shared-memory environment

Example application—work group reduction


Chapter 8. OpenCL Case St


No. of pages:
© Morgan Kaufmann 2013
Morgan Kaufmann
eBook ISBN:
Paperback ISBN:


"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, 2013

Ratings and Reviews