Please enable JS


20 July 2012 /Mark Benson

Published in Real Time Computing (RTC) Magazine, by Mark Benson.

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.