OpenCL Reference Pages

OpenCL (Open Computing Language) is an open royalty-free standard for general purpose
parallel programming across CPUs, GPUs and other processors, giving software developers
portable and efficient access to the power of these heterogeneous processing platforms.

OpenCL supports a wide range of applications, ranging from embedded and consumer software
to HPC solutions, through a low-level, high-performance, portable abstraction. By creating an
efficient, close-to-the-metal programming interface, OpenCL will form the foundation layer of a
parallel computing ecosystem of platform-independent tools, middleware and applications.

OpenCL consists of an API for coordinating parallel computation across
heterogeneous processors; and a cross-platform programming language with a well-specified
computation environment. The OpenCL standard:

Supports both data- and task-based parallel programming models

Utilizes a subset of ISO C99 with extensions for parallelism

Defines consistent numerical requirements based on IEEE 754

Defines a configuration profile for handheld and embedded devices

Efficiently interoperates with OpenGL, OpenGL ES, and other graphics APIs

The specification is divided into a core specification that any OpenCL compliant implementation must support; a
handheld/embedded profile which relaxes the OpenCL compliance requirements for handheld
and embedded devices; and a set of optional extensions that are likely to move into the core
specification in later revisions of the OpenCL specification.