ABSTRACT: OpenCL is a programming framework for managing heterogeneous computing resources such as CPUs and GPUs.
OpenCL can be used to accelerate computationally-intensive algorithms in a robust and scalable way.
However, complicated problems often require complicated solutions, and OpenCL is a complicated (and powerful) solution.
This article delineates the complexity of OpenCL in two ways: (1) by describing the architecture of OpenCL, and it's primary organizing principals (static model, dynamic model, memory model, and compilation model); and (2) by describing how to use OpenCL in real-world applications (creating, building, compiling, linking, executing, and debugging OpenCL programs).
The article ends with a summary of next steps for OpenCL, and recommendations for further reading.
Mark Benson is Vice President of Engineering at SmartThings, a technology company based in Mountain View, CA and a wholly owned subsidiary of Samsung Electronics. Mark is a regular speaker and writer on the intersection of technology, business, and society as it relates to product development, technology leadership, strategic planning and execution, intellectual property portfolio management, software architecture, information security, competitive positioning, and organizational behavior.