Khronos OpenCL API Registry
Khronos OpenCL API Registry
The OpenCL API registry contains specifications of the core API and a portable intermediate representation of OpenCL programs; specifications of Khronos- and vendor-approved OpenCL extensions; header files corresponding to the specifications; and other related documentation.
OpenCL Core API and SPIR Specification, Headers, and Documentation
The current version of OpenCL is OpenCL 1.2.
- OpenCL 1.2 Specification (revision 19, November 14, 2012).
- OpenCL 1.2 Extensions Specification (revision 19, November 16, 2012).
- OpenCL 1.2 C++ Bindings Specification (revision 9, May 7, 2013).
- OpenCL SPIR (Standard Portable Intermediate Representation) (version 1.0 provisional).
- OpenCL 1.2 Installable Client Driver (ICD) Loader. The related cl_khr_icd extension allows multiple implementations of OpenCL to co-exist on the same system. The ICD Loader allows applications to choose a platform from the list of installed platforms and dispatches OpenCL API calls to the underlying implementation. Consult LICENSE.txt in the tarball for full terms and conditions.
- OpenCL 1.2 Online Manual Pages.
- OpenCL 1.2 Reference Card (revision 1111, released November 15, 2011).
- All of the following headers should be present in a directory
CL/ (or OpenCL/ on MacOS X). The single
header file opencl.h includes
other headers as appropriate for the target platform, and simply
including opencl.h should be all that most applications
need to do.
- opencl.h - OpenCL 1.2 Single Header File for Applications.
- cl_platform.h - OpenCL 1.2 Platform-Dependent Macros.
- cl.h - OpenCL 1.2 Core API Header File.
- cl_ext.h - OpenCL 1.2 Extensions Header File.
- cl_dx9_media_sharing.h - OpenCL 1.2 Khronos OpenCL/Direct3D 9 Media Sharing Extensions Header File.
- cl_d3d10.h - OpenCL 1.2 Khronos OpenCL/Direct3D 10 Extensions Header File.
- cl_d3d11.h - OpenCL 1.2 Khronos OpenCL/Direct3D 11 Extensions Header File.
- cl_gl.h - OpenCL 1.2 Khronos OpenCL/OpenGL Extensions Header File.
- cl_gl_ext.h - OpenCL 1.2 Vendor OpenCL/OpenGL Extensions Header File.
- cl.hpp - OpenCL 1.2 C++ Bindings Header File, implementing the C++ Bindings Specification.
- Extension template for writing an OpenCL extension specification. Extensions in the registry (listed below) follow the structure of this document, which describes the purpose of each section in an extension specification.
Older Specifications
Older versions of OpenCL provided for reference.
- OpenCL 1.1 Specification (revision 44, June 1, 2011). A Japanese translation of the specification is also available.
- OpenCL 1.1 C++ Bindings Specification (revision 4, June 14, 2010).
- OpenCL 1.1 Online Manual Pages.
- OpenCL 1.1 headers are structured in exactly the same fashion as
OpenCL 1.2 headers described above.
- opencl.h - OpenCL 1.1 Single Header File for Applications.
- cl_platform.h - OpenCL 1.1 Platform-Dependent Macros.
- cl.h - OpenCL 1.1 Core API Header File.
- cl_ext.h - OpenCL 1.1 Extensions Header File.
- cl_d3d10.h - OpenCL 1.1 Khronos OpenCL/Direct3D 10 Extensions Header File.
- cl_gl.h - OpenCL 1.1 Khronos OpenCL/OpenGL Extensions Header File.
- cl_gl_ext.h - OpenCL 1.1 Vendor OpenCL/OpenGL Extensions Header File.
- cl.hpp - OpenCL 1.1 C++ Bindings Header File, implementing the C++ Bindings Specification.
- OpenCL 1.0 Specification (revision 48, October 6, 2009).
- OpenCL 1.0 Online Manual Pages.
- OpenCL 1.0 headers are structured in exactly the same fashion as
OpenCL 1.2 headers described above.
- opencl.h - OpenCL 1.0 Single Header File for Applications.
- cl_platform.h - OpenCL 1.0 Platform-Dependent Macros.
- cl.h - OpenCL 1.0 Core API Header File.
- cl_ext.h - OpenCL 1.0 Extensions Header File.
- cl_d3d10.h - OpenCL 1.0 Khronos OpenCL/Direct3D 10 Extensions Header File.
- cl_gl.h - OpenCL 1.0 Khronos OpenCL/OpenGL Extensions Header File.
- cl_gl_ext.h - OpenCL 1.0 Vendor OpenCL/OpenGL Extensions Header File.
- cl.hpp - OpenCL 1.1 C++ Bindings Header File, implementing the C++ Bindings Specification. This header works for OpenCL 1.0 as well as OpenCL 1.1.
Providing Feedback on the Registry
Khronos welcomes comments and bug reports. To provide feedback, please create an account on the Khronos Bugzilla and file a bug. Make sure to fill in the "Product" field in the bug entry form as "OpenCL" and pick appropriate values for the other fields.
If you are already logged into Bugzilla, the following links will prepopulate the bug report fields as appropriate for:
- feedback on the OpenCL Header Files and (NOTE: you must be logged into Bugzilla before clicking on this link)
- feedback on the OpenCL C++ Bindings (NOTE: you must be logged into Bugzilla before clicking on this link)
Extension Specifications
- cl_khr_gl_sharing
- cl_nv_d3d9_sharing
- cl_nv_d3d10_sharing
- cl_nv_d3d11_sharing
- cl_khr_icd
- cl_khr_d3d10_sharing
- cl_amd_device_attribute_query
- cl_amd_fp64
- cl_amd_media_ops
- cl_ext_migrate_memobject
- cl_ext_device_fission
- cl_ext_atomic_counters_32
- cl_ext_atomic_counters_64
- cl_intel_dx9_media_sharing
- cl_amd_media_ops2
- cl_intel_thread_local_exec
- cl_nv_compiler_options
- cl_nv_device_attribute_query
- cl_nv_pragma_unroll
- cl_intel_device_partition_by_names
