Heterogeneous Computing with OpenCL 2.0 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. This fully-revised edition includes the latest enhancements in OpenCL 2.0 including: * Shared virtual memory to increase programming flexibility and reduce data transfers that consume resources * Dynamic parallelism which reduces processor load and avoids bottlenecks * Improved imaging support and integration with OpenGL, a graphics standard * Pipe memory which can be optimized for specific scenarios * Improved integration with Android platforms 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. * Updated throughout to cover the latest developments in OpenCL 2.0
, including improvements in memory handling, parallelism, and imaging support * 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* Presents multiple examples and case studies that demonstrate range of fundamental programming techniques on current system architectures using OpenCL as the target language alongside CPUs, GPUs and APUs
David Kaeli received a BS and PhD in Electrical Engineering from Rutgers University, and an MS in Computer Engineering from Syracuse University. He is the Associate Dean of Undergraduate Programs in the College of Engineering and a Full Processor on the ECE faculty at Northeastern University, Boston, MA where he directs the Northeastern University Computer Architecture Research Laboratory (NUCAR). Prior to joining Northeastern in 1993, Kaeli spent 12 years at IBM, the last 7 at T.J. Watson Research Center, Yorktown Heights, NY. Dr. Kaeli 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 presently serves as the Chair of the IEEE Technical Committee on Computer Architecture. Dr. Kaeli is an IEEE Fellow and a member of the ACM. Perhaad Mistry is a PhD candidate at Northeastern University. He received a BS in Electronics Engineering from University of Mumbai and an MS in Computer Engineering from Northeastern University in Boston. He is presently a member of the Northeastern University Computer Architecture Research Laboratory (NUCAR) and is advised by Dr. David Kaeli. Perhaad 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 present research focuses on the design of profiling tools for heterogeneous computing, He is studying the potential of using standards like OpenCL for building tools that simplify parallel programming and performance analysis across the variety of heterogeneous devices available today. Dana Schaa received a BS in Computer Engineering from Cal Poly, San Luis Obispo, and an MS 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. Dana married his wonderful wife Jenny in 2010, and they live together in Boston with their charming cats.