The OpenCL registry contains formatted specifications of the OpenCL
API, OpenCL C programming language, OpenCL SPIR-V environment, and
OpenCL extensions.
The OpenCL registry also includes header files, links to reference pages,
reference cards, and other related documentation.
The asciidoctor source for the specifications in this registry is
available in the
OpenCL-Docs GitHub repository.
This registry is hosted in the OpenCL-Registry
GitHub repository.
OpenCL 3.0 Unified Specifications
The latest version of OpenCL is OpenCL 3.0.
The OpenCL specifications are now unified so they describe OpenCL 3.0
and all previous versions of OpenCL.
- OpenCL API Specification
(HTML)
(PDF)
(December 18, 2020).
- OpenCL C Language Specification
(HTML)
(PDF)
(December 18, 2020).
- OpenCL Extension Specification
(HTML)
(PDF)
(December 18, 2020.
- OpenCL SPIR-V Environment Specification
(HTML)
(PDF)
(December 18, 2020).
-
OpenCL 3.0 Reference Guide.
Related Specifications and Resources
- C language header files for the OpenCL API are in the
OpenCL-Headers GitHub repository.
- Header files providing C++ bindings for the OpenCL API are in the
OpenCL-CLHPP GitHub repository.
- An OpenCL Installable Client Driver (ICD) Loader can be obtained
from the
OpenCL-ICD-Loader GitHub repository.
- OpenCL ICD Installation Guide Specification
(HTML)
(PDF)
- The Standard Portable Intermediate Representation (SPIR-V)
specification is in the SPIR-V
Registry.
- The SYCL specification is found in the SYCL
Registry.
Older Specifications
Older versions of OpenCL are provided for reference.
OpenCL 2.2.
OpenCL 2.1
OpenCL 2.0
OpenCL 1.2
OpenCL 1.1
OpenCL 1.0
Providing Feedback on the Registry
Khronos welcomes comments and bug reports. To provide feedback on the
OpenCL reference pages, or on the OpenCL registry itself (such as
reporting missing content, bad links, etc.), file an issue in the
OpenCL-Registry GitHub repository.
Feedback on related OpenCL components can be provided as follows:
- For the OpenCL API, C/C++ Language, and SPIR-V Environment
Specifications, file an issue on the
OpenCL-Docs GitHub repository.
- For the OpenCL C header files, file an issue in the
OpenCL-Headers GitHub repository.
- For the OpenCL C++ bindings, file an issue in the
OpenCL-CLHPP GitHub repository.
- For the OpenCL ICD Loader, file an issue in the
OpenCL-ICD-Loader GitHub repository.
Extension Template
The extension template for
writing an OpenCL extension specification shows the structure of
vendor extension specifications in the registry (listed below) and
serves as a guide for writing new extension specifications. The
template describes the purpose of each section in an extension
specification.
Enumerant and Extension Number Registry
cl.xml is the registry of reserved OpenCL API enumerant ranges.
(Note that following this link will probably not render sensibly in
browsers, since the file is not entirely valid XML, simply a manually
updated placeholder.)
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
- cl_qcom_ext_host_ptr
- cl_qcom_ion_host_ptr
- cl_intel_motion_estimation
- cl_intel_accelerator
- cl_amd_bus_addressable_memory
- cl_arm_core_id
- cl_arm_printf
- cl_altera_live_object_tracking
- cl_altera_device_temperature
- cl_altera_compiler_mode
- cl_intel_d3d11_nv12_media_sharing
- cl_qcom_android_native_buffer_host_ptr
- cl_intel_advanced_motion_estimation
- cl_intel_simultaneous_sharing
- cl_intel_subgroups
- cl_intel_va_api_media_sharing
- cl_intel_egl_image_yuv
- cl_arm_import_memory
- cl_arm_non_uniform_work_group_size
- cl_arm_shared_virtual_memory
- cl_arm_thread_limit_hint
- cl_intel_packed_yuv
- cl_intel_required_subgroup_size
- cl_img_cached_allocations
- cl_img_use_gralloc_ptr
- cl_img_yuv_image
- cl_intel_driver_diagnostics
- cl_intel_subgroups_short
- cl_intel_planar_yuv
- cl_intel_device_side_avc_motion_estimation
- cl_intel_media_block_io
- cl_arm_integer_dot_product
- cl_qcom_ext_host_ptr_iocoherent
- cl_amd_planar_yuv
- cl_intel_spirv_subgroups
- cl_intel_spirv_media_block_io
- cl_intel_spirv_device_side_avc_motion_estimation
- cl_arm_job_slot_selection
- cl_intel_subgroups_char
- cl_intel_subgroups_long
- cl_intel_create_buffer_with_properties
- cl_intel_mem_channel_property
- cl_arm_scheduling_controls
- cl_ext_cxx_for_opencl
- cl_intel_mem_force_host_memory
- cl_img_generate_mipmap
- cl_img_mem_properties
- cl_intel_command_queue_families
- cl_arm_controlled_kernel_termination