OpenCL Definition
Stands for “Open Computing Language.” OpenCL is an open standard for cross-platform, parallel programming. It was originally developed by Apple in 2008 and is now maintained by the Khronos Group. The first major operating system to support OpenCL was Snow Leopard (Mac OS X 10.6), which was released in 2009.
OpenCL provides an API that allows software programs to access multiple processors simultaneously to perform parallel processing. Examples include CPUs, GPUs, digital signal processors (DSPs), and field-programmable gate arrays (FPGAs). By distributing the computing load across multiple processors, OpenCL increases processing efficiency and can substantially improve a program’s performance.
While OpenCL supports many different types of processors, it is most notably used to access the GPU for general computing tasks. This technique, also called GPGPU, takes advantage of the GPU’s processing power and allows it to assist the CPU in completing calculations. Before OpenCL, the graphics processor would often remain idle while the CPU was running at full capacity. OpenCL enables the GPU to assist the CPU in processing non-graphics-related computations.
In order to take advantage of OpenCL, both the hardware and software must support the OpenCL API. Because of the performance advantage OpenCL provides, most video cards developed by NVIDIA and AMD now support OpenCL. Many mobile graphics processors, such as those used in smartphones and tablets, support OpenCL as well.