0%

Book Description

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

Table of Contents

  1. Cover image
  2. Table of Contents
  3. Front matter
  4. Copyright
  5. Foreword
  6. Preface
  7. Acknowledgments
  8. About the Authors
  9. Chapter 1. Introduction to Parallel Programming
  10. Chapter 2. Introduction to OpenCL
  11. Chapter 3. OpenCL Device Architectures
  12. Chapter 4. Basic OpenCL Examples
  13. Chapter 5. Understanding OpenCL's Concurrency and Execution Model
  14. Chapter 6. Dissecting a CPU/GPU OpenCL Implementation
  15. Chapter 7. OpenCL Case Study
  16. Chapter 8. OpenCL Case Study
  17. Chapter 9. OpenCL Case Study
  18. Chapter 10. OpenCL Case Study
  19. Chapter 11. OpenCL Extensions
  20. Chapter 12. OpenCL Profiling and Debugging
  21. Chapter 13. WebCL
  22. Index