The Khronos Group - Connecting Software to Silicon

The Khronos Group is a not for profit industry consortium creating open standards for the authoring and acceleration of parallel computing, graphics, dynamic media, computer vision and sensor processing on a wide variety of platforms and devices. All Khronos members are able to contribute to the development of Khronos API specifications, are empowered to vote at various stages before public deployment, and are able to accelerate the delivery of their cutting-edge 3D platforms and applications through early access to specification drafts and conformance tests.

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.

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)
You can also post feedback to the OpenCL Message Board in a new thread, or there is an existing thread specifically created to discuss the OpenCL C++ Bindings .

Extension Specifications
  1. cl_khr_gl_sharing
  2. cl_nv_d3d9_sharing
  3. cl_nv_d3d10_sharing
  4. cl_nv_d3d11_sharing
  5. cl_khr_icd
  6. cl_khr_d3d10_sharing
  7. cl_amd_device_attribute_query
  8. cl_amd_fp64
  9. cl_amd_media_ops
  10. cl_ext_migrate_memobject
  11. cl_ext_device_fission
  12. cl_ext_atomic_counters_32
  13. cl_ext_atomic_counters_64
  14. cl_intel_dx9_media_sharing
  15. cl_amd_media_ops2
  16. cl_intel_thread_local_exec
  17. cl_nv_compiler_options
  18. cl_nv_device_attribute_query
  19. cl_nv_pragma_unroll
  20. cl_intel_device_partition_by_names