Khronos OpenCL Registry
Khronos OpenCL注册表
The OpenCL registry contains formatted specifications of the OpenCL API, OpenCL C programming language, OpenCL SPIR-V environment, and OpenCL extensions.
OpenCL注册表包含OpenCL API、OpenCL C编程语言、OpenCL SPIR-V环境和OpenCL扩展的格式化规范。
The OpenCL registry also includes header files, links to reference pages, reference cards, and other related documentation.
OpenCL注册表还包括头文件、参考页面链接、参考卡和其他相关文档。
The asciidoctor source for the specifications in this registry is available in the OpenCL-Docs GitHub repository.
此注册表中规范的ASCII标识符源可在OpenCL Docs GitHub存储库中获得。
This registry is hosted in the OpenCL-Registry GitHub repository.
此注册表托管在OpenCL registry GitHub存储库中。
OpenCL 3.0 Unified Specifications
OpenCL 3.0统一规范
The latest version of OpenCL is OpenCL 3.0.
OpenCL的最新版本是OpenCL 3.0。
The OpenCL specifications are now unified so they describe OpenCL 3.0 and all previous versions of OpenCL.
OpenCL规范现在是统一的,因此它们描述了OpenCL 3.0和所有以前版本的OpenCL。
- OpenCL API Specification (HTML) (PDF) (April 17, 2023).
- OpenCL API规范(HTML)(PDF)(2023年4月17日)。
- OpenCL C Language Specification (HTML) (PDF) (April 17, 2023).
- OpenCL C语言规范(HTML)(PDF)(2023年4月17日)。
- OpenCL Extension Specification (HTML) (PDF) (April 17, 2023).
- OpenCL扩展规范(HTML)(PDF)(2023年4月17日)。
- OpenCL SPIR-V Environment Specification (HTML) (PDF) (April 17, 2023).
- OpenCL SPIR-V环境规范(HTML)(PDF)(2023年4月17日)。
- OpenCL 3.0 Reference Pages.
- OpenCL 3.0参考页。
- OpenCL 3.0 Reference Guide.
- OpenCL 3.0参考指南。
Related Specifications and Resources
相关规范和资源
- C language header files for the OpenCL API are in the OpenCL-Headers GitHub repository.
- OpenCL API的C语言头文件位于OpenCL-Headers GitHub存储库中。
- Header files providing C++ bindings for the OpenCL API are in the OpenCL-CLHPP GitHub repository.
- 为OpenCL API提供C++绑定的头文件位于OpenCL-CLHPP GitHub存储库中。
- Doxygen documentation for the C++ bindings is also available.
- 还提供了C++绑定的Doxygen文档。
- An OpenCL Installable Client Driver (ICD) Loader can be obtained from the OpenCL-ICD-Loader GitHub repository.
- OpenCL可安装客户端驱动程序(ICD)加载程序可以从OpenCL ICD加载程序GitHub存储库中获得。
- The Standard Portable Intermediate Representation (SPIR-V) specification is in the SPIR-V Registry.
- 标准可移植中间表示(SPIR-V)规范在SPIR-V注册表中。
- The OpenCL Extended Instruction Set for SPIR-V is included as part of the SPIR-V registry.
- SPIR-V的OpenCL扩展指令集包含在SPIR-V注册表中。
- The SYCL specification is found in the SYCL Registry.
- SYCL规范可在SYCL注册表中找到。
Older Specifications
旧规范
Older versions of OpenCL are provided for reference.
提供了较旧版本的OpenCL以供参考。
OpenCL 2.2.
- OpenCL 2.2 API Specification (HTML) (PDF) (July 19, 2019).
- OpenCL Extension Specification (HTML) (PDF) (July 19, 2019).
- OpenCL SPIR-V Environment Specification (HTML) (PDF) (July 19, 2019).
- OpenCL C Language Specification (HTML) (PDF) (July 19, 2019).
- OpenCL C++ Language Specification (HTML) (PDF) (July 19, 2019).
- OpenCL 2.2 Reference Pages.
- OpenCL 2.2 Reference Guide.
OpenCL 2.1
- OpenCL 2.1 API Specification (November 11, 2015).
- OpenCL 2.1 Extensions Specification (November 5, 2015).
- OpenCL 2.1 Environment Specification.
- OpenCL 2.1 Reference Pages.
- OpenCL 2.1 Quick Reference Card.
OpenCL 2.0
- OpenCL 2.0 API Specification (July 21, 2015).
- OpenCL 2.0 C Language Specification (April 13, 2016).
- OpenCL 2.0 Extension Specification (March 11, 2016).
- OpenCL 2.0 Reference Pages.
- OpenCL 2.0 Quick Reference Card.
OpenCL 1.2
- OpenCL 1.2 API and C Language Specification (November 14, 2012).
- OpenCL 1.2 Extensions Specification (September 22, 2015).
- OpenCL 1.2 Reference Pages.
- OpenCL 1.2 Quick Reference Card.
OpenCL 1.1
- OpenCL 1.1 API and C Language Specification (revision 44, June 1, 2011). A Japanese translation of the specification is also available.
- OpenCL 1.1 Reference Pages.
- OpenCL 1.1 Reference Card.
OpenCL 1.0
- OpenCL 1.0 API and C Language Specification (revision 48, October 6, 2009).
- OpenCL 1.0 Reference Pages.
- OpenCL 1.0 Reference Card.
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.
Khronos欢迎评论和错误报告。要对OpenCL参考页面或OpenCL注册表本身提供反馈(如报告丢失的内容、坏链接等),请在OpenCL注册表GitHub存储库中提交问题。
Feedback on related OpenCL components can be provided as follows:
对相关OpenCL组件的反馈可以提供如下:
- For the OpenCL API, C/C++ Language, and SPIR-V Environment Specifications, file an issue on the OpenCL-Docs GitHub repository.
- 对于OpenCL API、C/C++语言和SPIR-V环境规范,请在OpenCL-Docs GitHub存储库中提交问题。
- For the OpenCL C header files, file an issue in the OpenCL-Headers GitHub repository.
- 对于OpenCL C头文件,请在OpenCL头GitHub存储库中提交一个问题。
- For the OpenCL C++ bindings, file an issue in the OpenCL-CLHPP GitHub repository.
- 对于OpenCL C++绑定,请在OpenCL CLHPP GitHub存储库中提交一个问题。
- For the OpenCL ICD Loader, file an issue in the OpenCL-ICD-Loader GitHub repository.
- 对于OpenCL ICD Loader,请在OpenCL ICD Loader GitHub存储库中提交问题。
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.
用于编写OpenCL扩展规范的扩展模板显示了注册表中供应商扩展规范的结构(如下所列),并作为编写新扩展规范的指南。该模板描述了扩展规范中每个部分的用途。
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.)
cl.xml是保留的OpenCL API枚举范围的注册表。(请注意,由于文件不是完全有效的XML,只是一个手动更新的占位符,因此遵循此链接可能不会在浏览器中合理呈现。)
Khronos Extension Specifications
Khronos扩建规范
Khronos extensions are published in the OpenCL Extension Specification. These links are to the appropriate chapter of the OpenCL Extension Specification.
Khronos扩展发布在OpenCL扩展规范中。这些链接指向OpenCL扩展规范的相应章节。
- cl_khr_3d_image_writes
- cl_khr_async_work_group_copy_fence
- cl_khr_byte_addressable_store
- cl_khr_command_buffer
- cl_khr_command_buffer_multi_device
- cl_khr_command_buffer_mutable_dispatch
- cl_khr_create_command_queue
- cl_khr_d3d10_sharing
- cl_khr_d3d11_sharing
- cl_khr_depth_images
- cl_khr_device_enqueue_local_arg_types
- cl_khr_device_uuid
- cl_khr_dx9_media_sharing
- cl_khr_egl_event
- cl_khr_egl_image
- cl_khr_expect_assume
- cl_khr_extended_async_copies
- cl_khr_extended_bit_ops
- cl_khr_extended_versioning
- cl_khr_external_memory
- cl_khr_external_memory_dma_buf
- cl_khr_external_memory_dx
- cl_khr_external_memory_opaque_fd
- cl_khr_external_memory_win32
- cl_khr_external_semaphore
- cl_khr_external_semaphore_dx_fence
- cl_khr_external_semaphore_opaque_fd
- cl_khr_external_semaphore_sync_fd
- cl_khr_fp16
- cl_khr_fp64
- cl_khr_gl_depth_images
- cl_khr_gl_event
- cl_khr_gl_msaa_sharing
- cl_khr_gl_sharing
- cl_khr_global_int32_base_atomics
- cl_khr_global_int32_extended_atomics
- cl_khr_icd
- cl_khr_il_program
- cl_khr_image2d_from_buffer
- cl_khr_initialize_memory
- cl_khr_int64_base_atomics
- cl_khr_int64_extended_atomics
- cl_khr_integer_dot_product
- cl_khr_local_int32_base_atomics
- cl_khr_local_int32_extended_atomics
- cl_khr_mipmap_image
- cl_khr_mipmap_image_writes
- cl_khr_pci_bus_info
- cl_khr_priority_hints
- cl_khr_select_fprounding_mode
- cl_khr_semaphore
- cl_khr_spir
- cl_khr_srgb_image_writes
- cl_khr_subgroup_ballot
- cl_khr_subgroup_clustered_reduce
- cl_khr_subgroup_extended_types
- cl_khr_subgroup_named_barrier
- cl_khr_subgroup_non_uniform_arithmetic
- cl_khr_subgroup_non_uniform_vote
- cl_khr_subgroup_rotate
- cl_khr_subgroup_shuffle
- cl_khr_subgroup_shuffle_relative
- cl_khr_subgroups
- cl_khr_suggested_local_work_size
- cl_khr_terminate_context
- cl_khr_throttle_hints
- cl_khr_work_group_uniform_arithmetic
Vendor and Multi-Vendor Extension Specifications
- cl_altera_compiler_mode
- cl_altera_device_temperature
- cl_altera_live_object_tracking
- cl_amd_bus_addressable_memory
- cl_amd_device_attribute_query
- cl_amd_fp64
- cl_amd_media_ops
- cl_amd_media_ops2
- cl_amd_planar_yuv
- cl_arm_controlled_kernel_termination
- cl_arm_core_id
- cl_arm_import_memory
- cl_arm_integer_dot_product
- cl_arm_job_slot_selection
- cl_arm_non_uniform_work_group_size
- cl_arm_printf
- cl_arm_protected_memory_allocation
- cl_arm_scheduling_controls
- cl_arm_shared_virtual_memory
- cl_arm_thread_limit_hint
- cl_ext_atomic_counters_32
- cl_ext_atomic_counters_64
- cl_ext_cxx_for_opencl
- cl_ext_device_fission
- cl_ext_float_atomics
- cl_ext_image_from_buffer
- cl_ext_image_requirements_info
- cl_ext_migrate_memobject
- cl_img_cached_allocations
- cl_img_generate_mipmap
- cl_img_mem_properties
- cl_img_use_gralloc_ptr
- cl_img_yuv_image
- cl_intel_accelerator
- cl_intel_advanced_motion_estimation
- cl_intel_bfloat16_conversions
- cl_intel_command_queue_families
- cl_intel_create_buffer_with_properties
- cl_intel_d3d11_nv12_media_sharing
- cl_intel_device_attribute_query
- cl_intel_device_partition_by_names
- cl_intel_device_side_avc_motion_estimation
- cl_intel_driver_diagnostics
- cl_intel_dx9_media_sharing
- cl_intel_egl_image_yuv
- cl_intel_exec_by_local_thread
- cl_intel_media_block_io
- cl_intel_mem_alloc_buffer_location
- cl_intel_mem_channel_property
- cl_intel_mem_force_host_memory
- cl_intel_motion_estimation
- cl_intel_packed_yuv
- cl_intel_planar_yuv
- cl_intel_required_subgroup_size
- cl_intel_sharing_format_query
- cl_intel_simultaneous_sharing
- cl_intel_spirv_device_side_avc_motion_estimation
- cl_intel_spirv_media_block_io
- cl_intel_spirv_subgroups
- cl_intel_split_work_group_barrier
- cl_intel_subgroup_matrix_multiply_accumulate
- cl_intel_subgroup_split_matrix_multiply_accumulate
- cl_intel_subgroups
- cl_intel_subgroups_char
- cl_intel_subgroups_long
- cl_intel_subgroups_short
- cl_intel_unified_shared_memory
- cl_intel_va_api_media_sharing
- cl_loader_info
- cl_nv_compiler_options
- cl_nv_d3d10_sharing
- cl_nv_d3d11_sharing
- cl_nv_d3d9_sharing
- cl_nv_device_attribute_query
- cl_nv_pragma_unroll
- cl_pocl_content_size
- cl_qcom_android_native_buffer_host_ptr
- cl_qcom_ext_host_ptr
- cl_qcom_ext_host_ptr_iocoherent
- cl_qcom_ion_host_ptr