Book description
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
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.
- 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
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- List of Figures
- List of Tables
- Foreword
- Acknowledgments
-
Chapter 1: Introduction
- Abstract
- 1.1 Introduction to Heterogeneous Computing
- 1.2 The Goals of This Book
- 1.3 Thinking Parallel
- 1.4 Concurrency and Parallel Programming Models
- 1.5 Threads and Shared Memory
- 1.6 Message-Passing Communication
- 1.7 Different Grains of Parallelism
- 1.8 Heterogeneous Computing with OpenCL
- 1.9 Book Structure
- Chapter 2: Device architectures
- Chapter 3: Introduction to OpenCL
- Chapter 4: Examples
- Chapter 5: OpenCL runtime and concurrency model
- Chapter 6: OpenCL host-side memory model
- Chapter 7: OpenCL device-side memory model
- Chapter 8: Dissecting OpenCL on a heterogeneous system
- Chapter 9: Case study: Image clustering
- Chapter 10: OpenCL profiling and debugging
-
Chapter 11: Mapping high-level programming languages to OpenCL 2.0: A compiler writer’s perspective
- Abstract
- 11.1 Introduction
- 11.2 A Brief Introduction to C++ AMP
- 11.3 OpenCL 2.0 as a Compiler Target
- 11.4 Mapping Key C++ AMP Constructs to OpenCL
- 11.5 C++ AMP Compilation Flow
- 11.6 Compiled C++ AMP Code
- 11.7 How Shared Virtual Memory in OpenCL 2.0 Fits in
- 11.8 Compiler Support for Tiling in C++AMP
- 11.9 Address Space Deduction
- 11.10 Data Movement Optimization
- 11.11 Binomial Options: A Full Example
- 11.12 Preliminary Results
- 11.13 Conclusion
- Chapter 12: WebCL: Enabling OpenCL acceleration of Web applications
- Chapter 13: Foreign lands: Plugging OpenCL in
- Index
Product information
- Title: Heterogeneous Computing with OpenCL 2.0
- Author(s):
- Release date: June 2015
- Publisher(s): Morgan Kaufmann
- ISBN: 9780128016497
You might also like
book
Heterogeneous Computing with OpenCL, 2nd Edition
Heterogeneous Computing with OpenCL, Second Edition teaches OpenCL and parallel programming for complex systems that may …
article
Run Llama-2 Models Locally with llama.cpp
Llama is Meta’s answer to the growing demand for LLMs. Unlike its well-known technological relative, ChatGPT, …
book
TensorFlow 2.0 Computer Vision Cookbook
Get well versed with state-of-the-art techniques to tailor training processes and boost the performance of computer …
article
Use Github Copilot for Prompt Engineering
Using GitHub Copilot can feel like magic. The tool automatically fills out entire blocks of code--but …