About this Book
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). 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
- Pipe memory which can be optimized for producer/consumer communication
Key features include:
- Updated content to cover the latest developments in OpenCL 2.0, including improvements in memory handling, parallelism, and imaging support
- Explanations of principles and strategies to learn parallel programming with OpenCL, from understanding the abstraction models to thoroughly testing and debugging complete applications
- Example code covering image analytics, web plugins, particle simulations, video editing, performance optimization, and more
- Multiple examples and case studies that demonstrate a range of fundamental programming techniques on current system architectures
Designed to work on multiple platforms, OpenCL will help you more effectively program for a heterogeneous future. Written by leaders in the parallel computing and OpenCL communities, this book explores memory spaces, optimization techniques, extensions, debugging and profiling. Multiple case studies and examples illustrate high-performance algorithms, distributing work across heterogeneous systems, embedded domain-specific languages, and will give you hands-on OpenCL experience to address a range of fundamental parallel algorithms.