Open Computing Language (OpenCL) is an open standard that enables you to use the parallel processing capabilities of multiple types of processors including application processors, Graphics Processing Units (GPUs), and other computing devices.
OpenCL specifies an API for parallel programming that is designed for portability:
- It uses an abstracted memory and execution model.
- There is no requirement to know the application processor instruction set.
Functions executing on OpenCL devices are called kernels. These are written in a language called OpenCL C that is based on C99.
The OpenCL language includes vector types and built-in functions that enable you to use the features of accelerators. There is also scope for targeting specific architectures with optimizations.