
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.
this is exactly the documentation that can be found at: http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clcreatebuffer.html