Heterogeneous Computing with OpenCL, Revised OpenCL 1.2 Edition
- 4h 49m
- Benedict R. Gaster, Dana Schaa, David R. Kaeli, Lee Howes, Perhaad Mistry
- Elsevier Science and Technology Books, Inc.
- 2013
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
About the Authors
Benedict R. Gaster is a software architect working on programming models for next-generation heterogeneous processors, particularly examining high-level abstractions for parallel programming on the emerging class of processors that contain both CPUs and accelerators such as GPUs. He has contributed extensively to the OpenCL's design and has represented AMD at the Khronos Group open standard consortium. He has a Ph.D. in computer science for his work on type systems for extensible records and variants.
Lee Howes has spent the past 3 1/2 years working at AMD on a range of topics related to GPU computing and graphics programming. Lee currently focuses on programming models for the future of heterogeneous computing. His interests lie in declaratively representing mappings of iteration domains to data, methods for making low-level hardware features usable in high level input languages and in communicating complicated architectural concepts and optimizations succinctly to a developer audience. Lee has a Ph.D. in computer science from Imperial College London for work in the mapping of iteration spaces to memory regions.
David Kaeli received a B.S. and Ph.D. in electrical engineering from Rutgers University and an M.S. in computer engineering from Syracuse University. He is Associate Dean of Undergraduate Programs in the College of Engineering and a Full Professor on the ECE faculty at Northeastern University, where he directs the Northeastern University Computer Architecture Research Laboratory (NUCAR). Prior to joining Northeastern in 1993, he spent 12 years at IBM, the last 7 at T. J. Watson Research Center, Yorktown Heights, NY. He has co-authored more than 200 critically reviewed publications. His research spans a range of areas, including microarchitecture to back-end compilers and software engineering. He leads a number of research projects in the area of GPU computing. He currently serves as the Chair of the IEEE Technical Committee on Computer Architecture. He is an IEEE Fellow and a member of the ACM.
Perhaad Mistry is a Ph.D. candidate at Northeastern University. He received a B.S. in electronics engineering from the University of Mumbai and an M.S. in computer engineering from Northeastern University. He is currently a member of the Northeastern University Computer Architecture Research Laboratory (NUCAR) and is advised by Dr. David Kaeli. He works on a variety of parallel computing projects. He has designed scalable data structures for the physics simulations for GPGPU platforms and has also implemented medical reconstruction algorithms for heterogeneous devices. His current research focuses on the design of profiling tools for heterogeneous computing. He is studying the potential of using standards such as OpenCL for building tools that simplify parallel programming and performance analysis across the variety of heterogeneous devices available today.
Dana Schaa received a B.S. in computer engineering from California Polytechnic State University, San Luis Obispo, and an M.S. in electrical and computer engineering from Northeastern University, where he is also currently a Ph.D. candidate. His research interests include parallel programming models and abstractions, particularly for GPU architectures. He has developed GPU-based implementations of several medical imaging research projects ranging from real-time visualization to image reconstruction in distributed, heterogeneous environments.
In this Book
-
Foreword to the Revised OpenCL 1.2 Edition
-
Foreword to the First Edition
-
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
-
Data Management
-
OpenCL Case Study—Convolution
-
OpenCL Case Study—Histogram
-
OpenCL Case Study—Mixed Particle Simulation
-
OpenCL Extensions
-
Foreign Lands—Plugging OpenCL in
-
OpenCL Profiling and Debugging
-
Performance Optimization of an Image Analysis Application