OpenCL (Open Computing Language) is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.
OpenCL consists of an API for coordinating parallel computation and a programming language for specifying those computations. Specifically, the OpenCL standard defines:
- a subset of the C99 programming language with extensions for parallelism
- an API for coordinating data and task-based parallel computation across a wide range of heterogeneous processors
- numerical requirements based on the Institute of Electrical and Electronics Engineers’ IEEE 754 standard
- efficient interoperability with OpenGL, OpenGL ES and other graphics APIs
You can download the 302-page OpenCL specs in PDF format HERE.