Appendix E: Changes to OpenCL
附录E:OpenCL的更改
Changes to the OpenCL API and OpenCL C specifications between successive versions are summarized below.
以下总结了连续版本之间对OpenCL API和OpenCL C规范的更改。
Summary of Changes from OpenCL 1.0 to OpenCL 1.1
从OpenCL 1.0到OpenCL 1.1的更改摘要
The following features are added to the OpenCL 1.1 platform layer and runtime (sections 4 and 5):
OpenCL 1.1平台层和运行时中添加了以下功能(第4节和第5节):
-
Following queries to table 4.3
对表4.3的以下查询 -
CL_CONTEXT_NUM_DEVICES to the list of queries specified to clGetContextInfo.
-
CL_CONTEXT_NUM_DEVICES返回到指定给clGetContextInfo的查询列表。
-
可选图像格式:CL_Rx、CL_RGx和CL_RGBx。
-
Support for sub-buffer objects ability to create a buffer object that refers to a specific region in another buffer object using clCreateSubBuffer.
-
支持子缓冲区对象使用clCreateSubBuffer创建引用另一个缓冲区对象中特定区域的缓冲区对象的能力。
-
clEnqueueReadBufferRect, clEnqueueWriteBufferRect and clEnqueueCopyBufferRect APIs to read from, write to and copy a rectangular region of a buffer object respectively.
-
clEnqueueReadBufferRect、clEnqueueWriteBufferRect和clEnqueuesCopyBufferRect API分别用于读取、写入和复制缓冲区对象的矩形区域。
-
clSetMemObjectDestructorCallback API to allow a user to register a callback function that will be called when the memory object is deleted and its resources freed.
-
clSetMemObjectDestructorCallback API允许用户注册回调函数,该函数将在删除内存对象并释放其资源时调用。
-
Options that control the OpenCL C version used when building a program executable.
-
控制构建程序可执行文件时使用的OpenCL C版本的选项。
-
CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE to the list of queries specified to clGetKernelWorkGroupInfo.
-
将CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE添加到指定给clGetKernelWorkGroupInfo的查询列表中。
-
Support for user events. User events allow applications to enqueue commands that wait on a user event to finish before the command is executed by the device. Following new APIs are added - clCreateUserEvent and clSetUserEventStatus.
-
支持用户事件。用户事件允许应用程序将等待用户事件完成的命令排队,然后再由设备执行命令。新增了以下API:clCreateUserEvent和clSetUserEventStatus。
-
clSetEventCallback API to register a callback function for a specific command execution status.
-
clSetEventCallback API为特定的命令执行状态注册回调函数。
The following modifications are made to the OpenCL 1.1 platform layer and runtime (sections 4 and 5):
对OpenCL 1.1平台层和运行时进行了以下修改(第4节和第5节):
-
Following queries in table 4.3
表4.3中的以下查询-
The minimum FULL_PROFILE value for CL_DEVICE_MAX_PARAMETER_SIZE increased from 256 to 1024 bytes
-
CLD_MAX_MAMETER_SIZE的最小FULL_PROFILE值从256字节增加到1024字节
-
The minimum FULL_PROFILE value for CL_DEVICE_LOCAL_MEM_SIZE increased from 16 KB to 32 KB.
-
CL_DEVICE_LOCAL_MEM_SIZE的最小FULL_PROFILE值从16KB增加到32KB。
-
-
The global_work_offset argument in clEnqueueNDRangeKernel can be a non-
NULL
value. -
clEnqueueNDRangeKernel中的global_work_offset参数可以是非NULL值。
-
All API calls except clSetKernelArg are thread-safe.
-
除了clSetKernelArg之外,所有API调用都是线程安全的。
The following features are added to the OpenCL C programming language (section 6) in OpenCL 1.1:
OpenCL 1.1中的OpenCL C编程语言(第6节)添加了以下功能:
-
3-component vector data types.
-
3分量向量数据类型。
-
New built-in functions
新的内置功能-
get_global_offset work-item function defined in section 6.15.1.
-
第6.15.1节中定义的get_global_offset工作项函数。
-
minmag, maxmag math functions defined in section 6.15.2.
-
第6.15.2节中定义的minmag、maxmag数学函数。
-
clamp integer function defined in section 6.15.3.
-
第6.15.3节中定义的箝位整数函数。
-
(vector, scalar) variant of integer functions min and max in section 6.12.3.
-
第6.12.3节中整数函数min和max的(向量、标量)变体。
-
async_work_group_strided_copy defined in section 6.15.11.
-
第6.15.11节中定义的async_work_group_strided_copy。
-
vec_step, shuffle and shuffle2 defined in section 6.15.13.
-
第6.15.13节中定义的vec_step、shuffle和shuffle2 。
-
-
cl_khr_byte_addressable_store extension is a core feature.
-
cl_khr_byte_addressable_store扩展是一个核心功能。
-
cl_khr_global_int32_base_atomics, cl_khr_global_int32_extended_atomics, cl_khr_local_int32_base_atomics and cl_khr_local_int32_extended_atomics extensions are core features. The built-in atomic function names are changed to use the atomic_ prefix instead of atom_.
-
cl_khr_global_int32_base_atomics、cl_khr_global_int32_extended_atomics,cl_khr_local_int32_base_atomics和cl_khr_local_int32_extended_atomics扩展是核心功能。内置的原子函数名称已更改为使用atomic_前缀而不是atom_。
-
Macros
CL_VERSION_1_0
andCL_VERSION_1_1
. -
宏CL_VERSION_1_0和CL_VERSION_1_1。
The following features in OpenCL 1.0 are deprecated (see glossary) in OpenCL 1.1:
OpenCL 1.0中的以下功能在OpenCL 1.1中已弃用(请参阅术语表):
-
The clSetCommandQueueProperty API is deprecated, which simplifies implementations and possibly improves performance by enforcing that command-queue properties are invariant. Applications are encouraged to create multiple command-queues with different properties versus modifying the properties of a single command-queue.
-
不赞成使用clSetCommandQueueProperty API,它通过强制命令队列属性不变来简化实现并可能提高性能。鼓励应用程序创建具有不同属性的多个命令队列,而不是修改单个命令队列的属性。
-
The
-cl-strict-aliasing
build option has been deprecated. It is no longer required after defining type-based aliasing rules. -
-cl-strict-aliasing
构建选项已被弃用。定义基于类型的别名规则后,不再需要它。 -
The cl_khr_select_fprounding_mode extension is deprecated and its use is no longer recommended.
-
cl_khr_select_fprounding_mode扩展已弃用,不再建议使用。
The following new extensions are added to section 9 in OpenCL 1.1:
OpenCL 1.1的第9节新增了以下扩展:
-
cl_khr_gl_event for creating a CL event object from a GL sync object.
-
cl_khr_gl_event用于从GL同步对象创建CL 事件对象。
-
cl_khr_d3d10_sharing for sharing memory objects with Direct3D 10.
-
cl_khr_d3d10_sharing用于与Direct3D 10共享内存对象。
The following modifications are made to the OpenCL ES Profile described in section 10 in OpenCL 1.1:
对OpenCL 1.1第10节中描述的OpenCL ES配置文件进行了以下修改:
-
64-bit integer support is optional.
-
64位整数支持是可选的。
Summary of Changes from OpenCL 1.1 to OpenCL 1.2
从OpenCL 1.1到OpenCL 1.2的更改摘要
The following features are added to the OpenCL 1.2 platform layer and runtime (sections 4 and 5):
OpenCL 1.2平台层和运行时中添加了以下功能(第4节和第5节):
-
Custom devices and built-in kernels are supported. clCreateProgramWithBuiltInKernels has been added to allow creation of a
cl_program
using built-in kernels. -
支持自定义设备和内置内核。clCreateProgramWithBuiltInKernels已添加,允许使用内置内核创建cl_program。
-
Device partitioning that allows a device to be partitioned based on a number of partitioning schemes supported by the device. This is done by using clCreateSubDevices to create a new
cl_device_id
based on a partitioning. -
设备分区,允许根据设备支持的多种分区方案对设备进行分区。这是通过使用clCreateSubDevices基于分区创建新的cl_device_id来实现的。
-
clCompileProgram and clLinkProgram to allow handling these aspects clBuildProgram separately.
-
clCompileProgram和clLinkProgram允许分别处理clBuildProgram的这些方面。
-
Extend
cl_mem_flags
to describe how the host accesses the data in acl_mem
object. -
扩展cl_mem_flags以描述主机如何访问cl_mem对象中的数据。
-
clEnqueueFillBuffer and clEnqueueFillImage to support filling a buffer with a pattern or an image with a color.
-
clEnqueueFillBuffer和clEnqueueFillImage支持用图案填充缓冲区或用颜色填充图像。
-
Add CL_MAP_WRITE_INVALIDATE_REGION to
cl_map_flags
. Appropriate clarification to the behavior of CL_MAP_WRITE has been added to the spec. -
将CL_MAP_WRITE_INVALIDATE_REGION添加到
cl_map_flags
。对CL_MAP_WRITE行为的适当澄清已添加到规范中。 -
New image types: 1D image, 1D image from a buffer object, 1D image array and 2D image arrays.
-
新的图像类型:1D图像、来自缓冲对象的1D图像、1D图像阵列和2D图像阵列。
-
clCreateImage to create an image object.
-
clCreateImage用于创建图像对象。
-
clEnqueueMigrateMemObjects API that allows a developer to have explicit control over the location of memory objects or to migrate a memory object from one device to another.
-
clEnqueueMigrateMemoObjects API,允许开发人员显式控制内存对象的位置,或将内存对象从一个设备迁移到另一个设备。
-
Support separate compilation and linking of programs.
-
支持程序的单独编译和链接。
-
Additional queries to get the number of kernels and kernel names in a program have been added to clGetProgramInfo.
-
clGetProgramInfo中添加了获取程序中内核数量和内核名称的其他查询。
-
Additional queries to get the compile and link status and options have been added to clGetProgramBuildInfo.
-
clGetProgramBuildInfo中添加了获取编译和链接状态和选项的其他查询。
-
clGetKernelArgInfo API that returns information about the arguments of a kernel.
-
clGetKernelArgInfo API,返回有关内核参数的信息。
-
clEnqueueMarkerWithWaitList and clEnqueueBarrierWithWaitList APIs.
-
clEnqueueMarkerWithWaitList和clEnqueueBarrierWithWaitList API。
-
clUnloadPlatformCompiler to request that a single platform’s compiler is unloaded. This is compatible with the cl_khr_icd extension if that is supported, unlike clUnloadCompiler.
-
clUnloadPlatformCompiler请求卸载单个平台的编译器。这与cl_khr_icd扩展兼容(如果支持的话),这与clUnloadCompiler不同。
The following features are added to the OpenCL C programming language (section 6) in OpenCL 1.2:
OpenCL 1.2中的OpenCL C编程语言(第6节)添加了以下功能:
-
Double-precision is now an optional core feature instead of an extension.
-
双精度现在是可选的核心功能,而不是扩展功能。
-
New built in image types: image1d_t, image1d_buffer_t, image1d_array_t, and image2d_array_t.
-
新的内置图像类型:image1d_t、image1d_buffer_t、image1d_array_t和image2d_array_t。
-
New built-in functions
新的内置功能-
Functions to read from and write to a 1D image, 1D and 2D image arrays described in sections 6.15.15.2, 6.15.15.3 and 6.15.15.4.
-
读取和写入第6.15.15.2、6.15.15.3和6.15.15.4节中描述的1D图像、1D和2D图像阵列的功能。
-
Sampler-less image read functions described in section 6.15.15.3.
-
第6.15.15.3节中描述的无采样器图像读取功能。
-
popcount integer function described in section 6.15.3.
-
第6.15.3节中描述的popcount整数函数。
-
printf function described in section 6.15.14.
-
第6.15.14节中描述的printf函数。
-
-
Storage class specifiers extern and static as described in section 6.10.
-
存储类说明符extern和static,如第6.10节所述。
-
Macros
CL_VERSION_1_2
and__OPENCL_C_VERSION__
. -
宏CL_VERSION_1_2和__OPENCL_C_VERSION__。
The following APIs in OpenCL 1.1 are deprecated (see glossary) in OpenCL 1.2:
OpenCL 1.1中的以下API在OpenCL 1.2中已弃用(请参阅术语表):
-
The clEnqueueMarker, clEnqueueBarrier and clEnqueueWaitForEvents APIs are deprecated to simplify the API. The clEnqueueMarkerWithWaitList and clEnqueueBarrierWithWaitList APIs provide equivalent functionality and support explicit event wait lists.
-
不赞成使用clEnqueueMarker、clEnqueueBarrier和clEnqueueWaitForEvents API来简化API。clEnqueueMarkerWithWaitList和clEnqueueBarrierWithWaitList API提供了等效的功能,并支持显式的事件等待列表。
-
The clCreateImage2D, clCreateImage3D, clCreateFromGLTexture2D and clCreateFromGLTexture3D APIs are deprecated to simplify the API. The clCreateImage and clCreateFromGLTexture APIs provide equivalent functionality and support additional image types and properties.
-
不赞成使用clCreateImage2D、clCreateImage3D、clCreateFromGLTexture2D和clCreateFromGLTexture3D API来简化API。clCreateImage和clCreateFromGLTexture API提供了等效的功能,并支持其他图像类型和属性。
-
clUnloadCompiler and clGetExtensionFunctionAddress APIs are deprecated. The clUnloadPlatformCompiler and clGetExtensionFunctionAddressForPlatform APIs provide equivalent functionality are compatible with the cl_khr_icd extension.
-
clUnloadCompiler 和 clGetExtensionFunctionAddress API 已过时。clUnloadPlatformCompiler和clGetExtensionFunctionAddressForPlatform API提供了与cl_khr_icd扩展兼容的等效功能。
The following queries are deprecated (see glossary) in OpenCL 1.2:
在OpenCL 1.2中,以下查询已被弃用(请参阅术语表):
-
The CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE query is deprecated. The minimum data type alignment can be derived from CL_DEVICE_MEM_BASE_ADDR_ALIGN.
-
CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE查询已弃用。最小数据类型对齐可以从CL_DEVICE_MEM_BASE_ADDR_ALIGN中导出。
Summary of Changes from OpenCL 1.2 to OpenCL 2.0
从OpenCL 1.2到OpenCL 2.0的更改摘要
The following features are added to the OpenCL 2.0 platform layer and runtime (sections 4 and 5):
以下功能被添加到OpenCL 2.0平台层和运行时(第4节和第5节):
-
Shared virtual memory. The associated API additions are:
共享虚拟内存。相关的API添加包括:-
clSetKernelArgSVMPointer to control which shared virtual memory (SVM) pointer to associate with a kernel instance.
-
clSetKernelArgSVMPointer,用于控制与内核实例关联的共享虚拟内存(SVM)指针。
-
clSVMAlloc, clSVMFree and clEnqueueSVMFree to allocate and free memory for use with SVM.
-
clSVMAlloc、clSVMFree和clEnqueueSVMFree用于分配和释放内存以供SVM使用。
-
clEnqueueSVMMap and clEnqueueSVMUnmap to map and unmap to update regions of an SVM buffer from host.
-
clEnqueueSVMMap和clEnqueueSVMUnmap用于映射和取消映射,以从主机更新SVM缓冲区的区域。
-
clEnqueueSVMMemcpy and clEnqueueSVMMemFill to copy or fill SVM memory regions.
-
clEnqueueSVMMemcopy和clEnqueueSVMMemFill用于复制或填充SVM内存区域。
-
-
Device queues used to enqueue kernels on the device.
用于在设备上排队内核的设备队列。-
clCreateCommandQueueWithProperties is added to allow creation of a command-queue with properties that affect both host command-queues and device queues.
-
添加了clCreateCommandQueueWithProperties,以允许创建具有影响主机命令队列和设备队列的属性的命令队列。
-
-
Pipes.
管道-
clCreatePipe and clGetPipeInfo have been added to the API for host side creation and querying of pipes.
-
clCreatePipe和clGetPipeInfo已添加到API中,用于主机端创建和查询管道。
-
-
Images support for 2D image from buffer, depth images and sRGB images.
-
图像支持来自缓冲区的2D图像、深度图像和sRGB图像。
The following modifications are made to the OpenCL 2.0 platform layer and runtime (sections 4 and 5):
对OpenCL 2.0平台层和运行时进行了以下修改(第4节和第5节):
-
All API calls except clSetKernelArg, clSetKernelArgSVMPointer and clSetKernelExecInfo are thread-safe. Note that this statement does not imply that other API calls were not thread-safe in earlier versions of the specification.
-
除了clSetKernelArg、clSetKernelArgSVMPointer和clSetKernellExecInfo之外,所有API调用都是线程安全的。请注意,此语句并不意味着其他API调用在早期版本的规范中不是线程安全的。
The following features are added to the OpenCL C programming language (section 6) in OpenCL 2.0:
OpenCL 2.0中的OpenCL C编程语言(第6节)添加了以下功能:
-
Clang Blocks.
-
Clang块
-
Kernels enqueuing kernels to a device queue.
-
内核将内核查询到设备队列。
-
Program scope variables in global address space.
-
全局地址空间中的程序作用域变量。
-
Generic address space.
-
通用地址空间。
-
C1x atomics.
-
C1x原子。
-
New built-in functions (sections 6.15.10, 6.15.12, and 6.15.16).
-
新的内置功能(第6.15.10、6.15.12和6.15.16节)。
-
Support images with the read_write qualifier.
-
支持带有read_write限定符的图像。
-
3D image writes are a core feature.
-
3D图像写入是一个核心功能。
-
The
CL_VERSION_2_0
andNULL
macros. -
CL_VERSION_2_0和NULL宏。
-
The
opencl_unroll_hint
attribute. -
opencl_unroll_hint属性。
The following APIs are deprecated (see glossary) in OpenCL 2.0:
在OpenCL 2.0中,以下API已被弃用(请参阅术语表):
-
The clCreateCommandQueue API has been deprecated to simplify the API. The clCreateCommandQueueWithProperties API provides equivalent functionality and supports specifying additional command-queue properties.
-
不赞成使用clCreateCommandQueue API来简化API。clCreateCommandQueueWithProperties API提供了等效的功能,并支持指定其他命令队列属性。
-
The clCreateSampler API has been deprecated to simplify the API. The clCreateSamplerWithProperties API provides equivalent functionality and supports specifying additional sampler properties.
-
为了简化API,clCreateSampler API已被弃用。clCreateSamplerWithProperties API提供了等效的功能,并支持指定其他采样器属性。
-
The clEnqueueTask API has been deprecated to simplify the API. The clEnqueueNDRangeKernel API provides equivalent functionality.
-
为了简化API,已弃用clEnqueueTask API。clEnqueueNDRangeKernel API提供了等效的功能。
The following queries are deprecated (see glossary) in OpenCL 2.0:
在OpenCL 2.0中,以下查询已被弃用(请参阅术语表):
-
The CL_DEVICE_HOST_UNIFIED_MEMORY query is deprecated. This query was purely informational and had different meanings for different implementations. Its use is no longer recommended.
-
CL_DEVICE_HOST_UNIFIED_MEMORY查询已弃用。此查询纯粹是信息性的,对不同的实现有不同的含义。不再推荐使用。
-
The CL_IMAGE_BUFFER query has been deprecated to simplify the API. The CL_MEM_ASSOCIATED_MEMOBJECT query provides equivalent functionality.
-
不赞成使用CL_IMAGE_BUFFER查询来简化API。CL_MEM_ASSOCIATED_MEMOBJECT查询提供了等效的功能。
-
The CL_DEVICE_QUEUE_PROPERTIES query has been deprecated and replaced by CL_DEVICE_QUEUE_ON_HOST_PROPERTIES.
-
CL_DEVICE_QUEUE_PROPERTIES查询已被弃用,取而代之的是CL_DEVICE_QUEUE_ON_HOST_PROPERTIES。
-
Atomics and Fences
原子操作和栅栏-
The Explicit Memory Fence Functions defined in section 6.12.9 of the OpenCL 1.2 specification have been deprecated to simplify the programming language. The atomic_work_item_fence function provides equivalent functionality. The deprecated functions are still described in section 6.15.9 of this specification.
-
OpenCL 1.2规范第6.12.9节中定义的显式内存围栏函数已被弃用,以简化编程语言。atomic_work_item_fence函数提供了等效的功能。本规范第6.15.9节仍对弃用的功能进行了描述。
-
The Atomic Functions defined in section 6.12.11 of the OpenCL 1.2 specification have been deprecated to simplify the programming language. The atomic_fetch and modify functions provide equivalent functionality. The deprecated functions are still described in section 6.15.12.8 of this specification.
-
OpenCL 1.2规范第6.12.11节中定义的原子函数已被弃用,以简化编程语言。atomic_rech和modify函数提供了等效的功能。本规范第6.15.12.8节仍对弃用的功能进行了描述。
-
Summary of Changes from OpenCL 2.0 to OpenCL 2.1
从OpenCL 2.0到OpenCL 2.1的更改摘要
The following features are added to the OpenCL 2.1 platform layer and runtime (sections 4 and 5):
OpenCL 2.1平台层和运行时中添加了以下功能(第4节和第5节):
-
clGetKernelSubGroupInfo API call.
-
clGetKernelSubGroupInfo API调用。
-
CL_KERNEL_MAX_NUM_SUB_GROUPS, CL_KERNEL_COMPILE_NUM_SUB_GROUPS additions to table 5.21 of the API specification.
-
CL_KERNEL_MAX_NUM_SUB_GROUPS、CL_KERNEL_COMPILE_NUM_SUB_GROUPS添加到API规范的表5.21中。
-
clCreateProgramWithIL API call.
-
clCreateProgramWithIL API 调用。
-
clGetHostTimer and clGetDeviceAndHostTimer API calls.
-
clGetHostTimer和clGetDeviceAndHostTimer API调用。
-
clEnqueueSVMMigrateMem API call.
-
clEnqueueSVMMigrateMem API调用。
-
clCloneKernel API call.
-
clCloneKernel API调用。
-
clSetDefaultDeviceCommandQueue API call.
-
clSetDefaultDeviceCommandQueue API调用。
-
CL_PLATFORM_HOST_TIMER_RESOLUTION added to table 4.1 of the API specification.
-
CL_PLATFORM_HOST_TIMER_RESOLUTION添加到API规范的表4.1中。
-
CL_DEVICE_IL_VERSION, CL_DEVICE_MAX_NUM_SUB_GROUPS, CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS added to table 4.3 of the API specification.
-
添加到API规范表4.3中的CL_DEVICE_IL_VERSION、CL_DEVICE_MAX_NUM_SUB_GROUPS、CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS。
-
CL_PROGRAM_IL to table 5.17 of the API specification.
-
CL_PROGRAM_IL至API规范表5.17。
-
CL_QUEUE_DEVICE_DEFAULT added to table 5.2 of the API specification.
-
CL_QUEUE_DEVICE_DEFAULT添加到API规范的表5.2中。
-
Added table 5.22 to the API specification with the enums: CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE and CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT
-
将表5.22添加到API规范中,其枚举为:CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE、CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE和CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT
The following modifications are made to the OpenCL 2.1 platform layer and runtime (sections 4 and 5):
对OpenCL 2.1平台层和运行时进行了以下修改(第4节和第5节):
-
All API calls except clSetKernelArg, clSetKernelArgSVMPointer, clSetKernelExecInfo and clCloneKernel are thread-safe. Note that this statement does not imply that other API calls were not thread-safe in earlier versions of the specification.
-
除了clSetKernelArg、clSetKernel ArgSVMPointer、clSetKernelExecInfo和clCloneKernel之外,所有API调用都是线程安全的。请注意,此语句并不意味着其他API调用在早期版本的规范中不是线程安全的。
Note that the OpenCL C kernel language is not updated for OpenCL 2.1. The OpenCL 2.0 kernel language will still be consumed by OpenCL 2.1 runtimes.
请注意,OpenCL C内核语言没有针对OpenCL 2.1进行更新。OpenCL 2.0内核语言仍将被OpenCL 2.1运行时使用。
The SPIR-V and OpenCL SPIR-V Environment specifications have been added.
添加了SPIR-V和OpenCL SPIR-V环境规范。
Summary of Changes from OpenCL 2.1 to OpenCL 2.2
从OpenCL 2.1到OpenCL 2.2的更改摘要
The following changes have been made to the OpenCL 2.2 execution model (section 3)
对OpenCL 2.2执行模型进行了以下更改(第3节)
-
Added the third prerequisite (executing non-trivial constructors for program scope global variables).
-
添加了第三个先决条件(为程序作用域全局变量执行非平凡构造函数)。
The following features are added to the OpenCL 2.2 platform layer and runtime (sections 4 and 5):
OpenCL 2.2平台层和运行时中添加了以下功能(第4节和第5节):
-
clSetProgramSpecializationConstant API call
-
clSetProgramSpecializationConstant API调用
-
clSetProgramReleaseCallback API call
-
clSetProgramReleaseCallback API调用
-
Queries for CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT and CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT
-
查询CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT和CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT
The following modifications are made to the OpenCL 2.2 platform layer and runtime (section 4 and 5):
对OpenCL 2.2平台层和运行时进行了以下修改(第4节和第5节):
-
Modified description of CL_DEVICE_MAX_CLOCK_FREQUENCY query.
-
修改了CL_DEVICE_MAX_CLOCK_FREQUENCY查询的描述。
-
Added a new error code CL_MAX_SIZE_RESTRICTION_EXCEEDED to clSetKernelArg API call
-
向clSetKernelArg API调用添加了新的错误代码CL_MAX_SIZE_RESTRICTION_EXCEEDED
Added definition of Deprecation and Specialization constants to the glossary.
在术语表中添加了弃用和专业化常量的定义。
Summary of Changes from OpenCL 2.2 to OpenCL 3.0
从OpenCL 2.2到OpenCL 3.0的更改摘要
OpenCL 3.0 is a major revision that breaks backwards compatibility with previous versions of OpenCL, see OpenCL 3.0 Backwards Compatibility for details.
OpenCL 3.0是一个重大修订,它打破了与以前版本的OpenCL的向后兼容性,有关详细信息,请参阅OpenCL 3.0向后兼容性。
OpenCL 3.0 adds new queries to determine optional capabilities for a device:
OpenCL 3.0添加了新的查询来确定设备的可选功能:
-
CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES and CL_DEVICE_ATOMIC_FENCE_CAPABILITIES to determine the atomic memory and atomic fence capabilities of a device.
-
CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES和CL_DEVICE_ATOMIC_FENCE_CAPABILITIES,用于确定设备的原子内存和原子围栏功能。
-
CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT to determine if a device supports non-uniform work-group sizes.
-
CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT支持,用于确定设备是否支持非统一工作组大小。
-
CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT to determine whether a device supports optional work-group collective functions, such as broadcasts, scans, and reductions.
-
CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT用于确定设备是否支持可选的工作组集合功能,如广播、扫描和缩减。
-
CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT to determine whether a device supports the generic address space.
-
CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT,用于确定设备是否支持通用地址空间。
-
CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES to determine the device-side enqueue capabilities of a device.
-
CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES,用于确定设备的设备侧排队能力。
-
CL_DEVICE_PIPE_SUPPORT to determine whether a device supports pipe memory objects.
-
CL_DEVICE_PIPE_SUPPORT用于确定设备是否支持管道内存对象。
-
CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE to determine the preferred work-group size multiple for a device.
-
CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE用于确定设备的首选工作组大小倍数。
OpenCL 3.0 adds new queries to conveniently and precisely describe supported features and versions:
OpenCL 3.0添加了新的查询,以方便准确地描述支持的功能和版本:
-
CL_PLATFORM_NUMERIC_VERSION to describe the platform version as a numeric value.
-
CL_PLATFORM_NUMERIC_VERSION将平台版本描述为数值。
-
CL_PLATFORM_EXTENSIONS_WITH_VERSION to describe supported platform extensions and their supported version.
-
CL_PLATFORM_EXTENSIONS_WITH_VERSION描述支持的平台扩展及其支持的版本。
-
CL_DEVICE_NUMERIC_VERSION to describe the device version as a numeric value.
-
CL_DEVICE_NUMERIC_VERSION将设备版本描述为数值。
-
CL_DEVICE_EXTENSIONS_WITH_VERSION to describe supported device extensions and their supported version.
-
CL_DEVICE_EXTENSIONS_WITH_VERSION描述支持的设备扩展及其支持的版本。
-
CL_DEVICE_ILS_WITH_VERSION to describe supported intermediate languages (ILs) and their supported version.
-
CL_DEVICE_ILS_WITH_VERSION描述支持的中间语言(IL)及其支持的版本。
-
CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION to describe supported built-in kernels and their supported version.
-
CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION描述支持的内置内核及其支持的版本。
OpenCL 3.0 adds a new API to register a function that will be called when a context is destroyed, enabling an application to safely free user data associated with a context callback function.
OpenCL 3.0添加了一个新的API来注册在上下文被破坏时将被调用的函数,使应用程序能够安全地释放与上下文回调函数关联的用户数据。
OpenCL 3.0 adds two new APIs to support creating buffer and image memory objects with additional properties. Although no new properties are added in OpenCL 3.0, these APIs enable new buffer and image extensions to be added easily and consistently:
OpenCL 3.0增加了两个新的API,以支持创建具有额外属性的缓冲区和图像内存对象。尽管OpenCL 3.0中没有添加新的属性,但这些API可以轻松一致地添加新的缓冲区和图像扩展:
OpenCL 3.0 adds new queries for the properties arrays specified when creating buffers, images, pipes, samplers, and command-queues:
OpenCL 3.0为创建缓冲区、图像、管道、采样器和命令队列时指定的属性数组添加了新的查询:
Program initialization and clean-up kernels are not supported in OpenCL 3.0 due to implementation complexity and lack of demand. The following APIs and queries for program initialization and clean-up kernels are deprecated in OpenCL 3.0:
由于实现的复杂性和需求的缺乏,OpenCL 3.0不支持程序初始化和清理内核。在OpenCL 3.0中,以下用于程序初始化和清理内核的API和查询已被弃用:
OpenCL 3.0 adds the OpenCL 3.0 C kernel language, which includes feature macros to describe OpenCL C language support. Please refer to the OpenCL C specification for details.
OpenCL 3.0增加了OpenCL 3.0 C内核语言,其中包括描述OpenCL C语言支持的功能宏。有关详细信息,请参阅OpenCL C规范。
Scalar input arguments to the any and all built-in functions have been deprecated in the OpenCL 3.0 C kernel language. These functions behaved inconsistently with the C language’s use of scalar integers as logical values.
在OpenCL 3.0 C内核语言中,任何和所有内置函数的标量输入参数都已被弃用。这些函数的行为与C语言使用标量整数作为逻辑值不一致。
OpenCL 3.0 adds new queries to determine supported OpenCL C language versions and supported OpenCL C features:
OpenCL 3.0增加了新的查询,以确定支持的OpenCL C语言版本和支持的OpenCL C功能:
-
CL_DEVICE_OPENCL_C_ALL_VERSIONS to determine the set of OpenCL C language versions supported by a device.
-
CL_DEVICE_OPENCL_C_ALL_VERSIONS,用于确定设备支持的OPENCL C语言版本集。
-
CL_DEVICE_OPENCL_C_FEATURES to determine optional OpenCL C language features supported by a device.
-
CL_DEVICE_OPENCL_C_FEATURES用于确定设备支持的可选OPENCL C语言功能。
OpenCL 3.0 adds an event command type to identify events associated with the OpenCL 2.1 command clEnqueueSVMMigrateMem:
OpenCL 3.0添加了一个事件命令类型来标识与OpenCL 2.1命令clEnqueueSVMMigrateMem相关的事件:
OpenCL 3.0 adds a new query to determine the latest version of the conformance test suite that the device has fully passed in accordance with the official conformance process:
OpenCL 3.0添加了一个新的查询,以确定设备根据官方一致性流程完全通过的一致性测试套件的最新版本:
Summary of Changes from OpenCL 3.0
OpenCL 3.0更改摘要
The first non-provisional version of the OpenCL 3.0 specifications was v3.0.5.
OpenCL 3.0规范的第一个非临时版本是v3.0.5。
Changes from v3.0.5:
与v3.0.5相比的更改:
-
Fixed the calculation in "mapping work-items onto an ND-range".
-
修正了“将工作项映射到ND范围”中的计算。
-
Added new extensions:
新增扩展:
Changes from v3.0.6:
与v3.0.6相比的更改:
-
Removed erroneous condition for CL_INVALID_KERNEL_ARGS.
-
删除了CL_INVALID_KERNEL_ARGS的错误条件。
-
Fixed the spelling of
-cl-no-signed-zeros
. -
修复了
-cl-no-signed-zeros
的拼写问题。 -
Clarified the table structure in the backwards compatibility appendix.
-
澄清了向后兼容性附录中的表结构。
-
Clarified that
-cl-unsafe-math-optimizations
also implies-cl-denorms-are-zero
. -
澄清了
-cl-unsafe-math-optimizations
也意味着-cl-denorms-are-zero
。 -
Added new extensions:
新增扩展:
Changes from v3.0.7:
与v3.0.7相比的更改:
-
Clarified optionality support for double-precision literals.
-
明确了双精度文字的可选性支持。
-
Removed unnecessary phrase from sub-group mask function descriptions.
-
从子组掩码函数描述中删除了不必要的短语。
-
Added input_slice_pitch error condition for read and write image APIs.
-
为读写图像API添加了input_slice_pitch错误条件。
-
Added new extension:
新增扩展名:
Changes from v3.0.8:
与v3.0.8相比的更改:
-
Added a missing error condition for clGetKernelSuggestedLocalWorkSizeKHR.
-
为clGetKernelSuggestedLocalWorkSizeKHR添加了一个缺失的错误条件。
-
Clarified requirements for CL_DEVICE_DOUBLE_FP_CONFIG prior to OpenCL 2.0.
-
澄清了OpenCL 2.0之前的CL_DEVICE_DOUBLE_FP_CONFIG的要求。
-
Clarified the behavior of ballot operations for remainder sub-groups.
-
澄清了剩余子组的投票操作行为。
-
Added new extensions:
新增扩展:-
cl_khr_integer_dot_product (version 2)
-
cl_khr_semaphore (provisional)
-
cl_khr_external_semaphore (provisional)
-
cl_khr_external_semaphore_dx_fence
(provisional) -
cl_khr_external_semaphore_opaque_fd (provisional)
-
cl_khr_external_semaphore_sync_fd (provisional)
-
cl_khr_external_semaphore_win32 (provisional)
-
cl_khr_external_memory (provisional)
-
cl_khr_external_memory_dma_buf (provisional)
-
cl_khr_external_memory_dx
(provisional) -
cl_khr_external_memory_opaque_fd (provisional)
-
cl_khr_external_memory_win32 (provisional)
-
Changes from v3.0.9:
与v3.0.9相比的更改:
-
Relaxed memory object acquire error checking requirements for OpenGL, EGL, and DirectX interop extensions.
-
Relaxed内存对象获取OpenGL、EGL和DirectX互操作扩展的错误检查要求。
-
Added a missing error condition for clGetSemaphoreHandleForTypeKHR.
-
为clGetSemaphoreHandleForTypeKHR添加了缺失的错误条件。
-
Clarified that clCompileProgram is valid for programs created from SPIR.
-
澄清了clCompileProgram对从SPIR创建的程序有效。
-
Documented the possible state of a kernel object after a failed call to clSetKernelArg.
-
记录了调用clSetKernelArg失败后内核对象的可能状态。
-
Added new extensions:
新增扩展:-
cl_khr_extended_async_copies (final)
-
cl_khr_command_buffer (provisional)
Changes from v3.0.10:
与v3.0.10相比的更改:
-
Added a requirement for implementations supporting device-side enqueue to also support program scope global variables.
-
增加了对支持设备端排队的实现的要求,以支持程序范围全局变量。
-
Added missing device scope atomic feature guards to several atomic function overloads.
-
为几个原子函数重载添加了缺失的设备作用域原子功能保护。
-
Added a possible error condition for clGetEventProfilingInfo for pre-OpenCL 3.0 devices.
-
为OpenCL 3.0之前的设备的clGetEventProfilingInfo添加了一个可能的错误条件。
-
Added several missing error conditions for clGetKernelSubGroupInfo.
-
为clGetKernelSubGroupInfo添加了几个缺失的错误条件。
-
Clarified the expected return value for the of CL_IMAGE_ROW_PITCH and CL_IMAGE_SLICE_PITCH queries.
-
阐明了CL_IMAGE_ROW_PITCH和CL_IMAGE_SLICE_PITCH查询的预期返回值。
-
Updated descriptions of the extended async copies functions to remove references to nonexistent function arguments.
-
更新了扩展异步复制函数的描述,以删除对不存在的函数参数的引用。
-
Clarified that the extended versioning extension is a core OpenCL 3.0 feature.
-
明确了扩展版本控制扩展是OpenCL 3.0的核心功能。
-
Clarified sub-group clustered reduction behavior when the cluster size is not an integer constant or a power of two.
-
阐明了当簇大小不是整数常数或2的幂时的子组簇缩减行为。
-
Added new extensions:
新增扩展:
Changes from v3.0.11:
与v3.0.11相比的更改:
-
Added a definition for a valid object and requirements for testing for valid objects.
-
添加了有效对象的定义和测试有效对象的要求。
-
Added a maximum limit for the number of arguments supported by a kernel.
-
为内核支持的参数数量添加了最大限制。
-
Clarified requirements for comparability and uniqueness of object handles.
-
明确了对象句柄的可比性和唯一性要求。
-
Clarified behavior for invalid device-side enqueue
clk_event_t
handles. -
阐明了无效设备端排队clk_event_t句柄的行为。
-
Clarified cl_khr_command_buffer interactions with other extensions.
-
澄清了cl_khr_command_buffer与其他扩展的交互。
-
Specified error behavior when a command buffer is finalized multiple times.
-
多次完成命令缓冲区时指定的错误行为。
-
Added new extension:
新增扩展名:-
cl_khr_command_buffer_mutable_dispatch (provisional)
-
Changes from v3.0.12:
与v3.0.12相比的更改:
-
Fixed the accuracy requirements description for half-precision math functions (those prefixed by
half_
). -
修复了半精度数学函数(前缀为half_)的精度要求描述。
-
Clarified that the semaphore type must always be provided when creating a semaphore.
-
阐明了在创建信号量时必须始终提供信号量类型。
-
Removed an unnecessary and contradictory error condition when creating a semaphore.
-
在创建信号量时,删除了一个不必要且相互矛盾的错误条件。
-
Added an issue regarding non-linear image import to the cl_khr_external_memory extension.
-
在cl_khr_external_memory扩展中添加了一个关于非线性图像导入的问题。
-
Added missing calls to clBuildProgram to the cl_khr_command_buffer and cl_khr_command_buffer_mutable_dispatch sample code.
-
在cl_khr_command_buffer和cl_khr_command_buffer_mutable_dispatch示例代码中添加了对clBuildProgram的缺失调用。
-
Fixed a copy-paste error in the extensions quick reference appendix.
-
修复了扩展快速参考附录中的复制粘贴错误。
-
Fixed typos and improved formatting consistency in the extensions spec.
-
修复了扩展规范中的拼写错误,提高了格式一致性。
Changes from v3.0.13:
与v3.0.13相比的更改:
-
Corrected the precision for
cross
anddot
to be based onHALF_EPSILON
in cl_khr_fp16, see #893. -
更正了cl_khr_fp16中基于HALF_EPSILON的交叉和点的精度,见#893。
-
Added a context query for command-buffers to cl_khr_command_buffer, see #899.
-
在cl_khr_command_buffer中添加了命令缓冲区的上下文查询,请参阅#899。
-
Updated the semaphore wait and signal rules for binary semaphores in cl_khr_semaphore, see #882.
-
更新了cl_khr_maphore中二进制信号量的信号量等待和信号规则,请参阅#882。
-
Removed redundant error conditions from cl_khr_external_semaphore and cl_khr_external_memory, see #903 and #904.
-
从cl_khr_external_maphore和cl_khr_external_memory中删除了冗余错误条件,请参阅#903和#904。
-
Added new extension:
新增扩展名:-
cl_khr_command_buffer_multi_device (provisional)
-
Changes from v3.0.14:
与v3.0.14相比的更改:
-
Clarified which error code should be returned when calling clCreateBuffer with a pointer to an SVM allocation that is too small, see #879.
-
澄清了当使用指向太小SVM分配的指针调用clCreateBuffer时应返回的错误代码,请参阅#879。
-
Improved capitalization and hyphenation consistency throughout the specs, see #902.
-
在整个规范中提高了大写和连字符的一致性,请参阅#902。
-
Clarified that SVM is optional for all OpenCL 3.0 devices, see #913.
-
已明确SVM对所有OpenCL 3.0设备都是可选的,请参阅#913。
-
Clarified that clSetCommandQueueProperty is only required for OpenCL 1.0 devices and may return an error otherwise, see #980.
-
澄清了clSetCommandQueueProperty仅对OpenCL 1.0设备是必需的,否则可能会返回错误,请参阅#980。
-
Clarified that the application must ensure the free function passed to clEnqueueSVMFree is thread safe, see #1016.
-
澄清了应用程序必须确保传递给clEnqueueSVMFree的free函数是线程安全的,请参阅#1016。
-
Clarified that the application must ensure the user function passed to clEnqueueNativeKernel is thread safe, see #1026.
-
澄清了应用程序必须确保传递给clEnqueueNativeKernel的用户函数是线程安全的,请参阅#1026。
-
cl_khr_command_buffer (provisional):
-
cl_khr_command_buffer_multi_device (provisional):
-
Clarified that the sync devices query should only return root devices, see #925.
-
已明确同步设备查询应仅返回根设备,请参阅#925。
-
-
cl_khr_external_memory (provisional):
-
Disallowed specifying a device handle list without also specifying an external memory handle, see #922.
-
不允许在不指定外部内存句柄的情况下指定设备句柄列表,请参阅#922。
-
Added a query to determine the handle types an implementation will assume have a linear memory layout, see #940.
-
添加了一个查询,以确定实现将假设具有线性内存布局的句柄类型,请参阅#940。
-
Added an external memory-specific device handle list enum, see #956.
-
添加了一个特定于外部内存的设备句柄列表枚举,请参阅#956。
-
Clarified that implementations may acquire information about an image from an external memory handle when the image is created, see #970.
-
澄清了当创建图像时,实现可以从外部存储器句柄获取有关图像的信息,请参阅#970。
-
-
cl_khr_external_semaphore (provisional):
-
Added the ability to re-import "sync fd" handles into an existing semaphore, see #939.
-
添加了将“sync fd”句柄重新导入现有信号量的能力,请参阅#939。
-
Clarified that a semaphore may only export one handle type, and that a semaphore created from an external handle cannot also export a handle, see #975.
-
澄清了信号量只能导出一个句柄类型,并且从外部句柄创建的信号量也不能导出句柄,请参阅#975。
-
Clarified that cl_khr_external_semaphore requires support for cl_khr_semaphore, see #976.
-
澄清了cl_khr_external_maphore需要对cl_khr_maphore的支持,请参阅#976。
-
Added a query to determine if a semaphore may export an external handle, see #997.
-
添加了一个查询来确定信号量是否可以导出外部句柄,请参阅#997。
-
-
cl_khr_semaphore (provisional):
-
-
Clarified that only rotating within a subgroup is supported, see #967.
-
澄清了只支持在子组内旋转,请参阅#967。
-
Changes from v3.0.15:
与v3.0.15相比的更改:
-
Moved all KHR extension text out of the OpenCL Extension specification and into the main specifications. The OpenCL Extension specification will be removed in a subsequent revision.
-
将所有KHR扩展文本从OpenCL扩展规范移至主规范中。OpenCL扩展规范将在后续版本中删除。
-
Clarified several error conditions that could return CL_INVALID_PLATFORM, see #1063.
-
澄清了可能返回CL_INVALID_PLATFORM的几个错误条件,请参阅#1063。
-
Strengthened requirements for the CL_DEVICE_TYPE query, see #1069.
-
CL_DEVICE_TYPE查询的强化要求,请参见#1069。
-
Clarified clSetEventCallback behavior for command errors, see #1071.
-
澄清了命令错误的clSetEventCallback行为,请参阅#1071。
-
Moved footnote text for CL_KERNEL_ARG_TYPE_QUALIFIER into the main spec, see #1097.
-
将CL_KERNEL_ARG_TYPE_QUALIFIER的脚注文本移动到主规范中,请参阅#1097。
-
cl_khr_command_buffer_mutable_dispatch (provisional):
-
Added CL_MUTABLE_DISPATCH_ASSERTS_KHR, see #992.
-
添加了CL_MUTABLE_DISPATCH_ASSERTS_KHR,请参阅#992。
-
-
-
Removed a redundant error condition, see #1052
-
删除了冗余错误条件,请参阅#1052
-
-
The following extensions have been finalized and are no longer provisional:
以下延期已最终确定,不再是临时性的: -
Added new extension:
新增扩展名:-
cl_khr_kernel_clock (provisional)
-
Changes from v3.0.16:
与v3.0.16相比的更改:
-
Clarified the definition of command prerequisites, see #923.
-
澄清了命令先决条件的定义,请参阅#923。
-
Clarified the behavior of CL_DEVICE_TYPE_DEFAULT and CL_DEVICE_TYPE_ALL for custom devices, see #1117.
-
澄清了自定义设备的CL_DEVICE_TYPE_DEFAULT和CL_DEVICE_TYPE_ALL的行为,请参阅#1117。
-
Clarified how CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES behaves for devices that do not support CL_DEVICE_SVM_ATOMICS, see #1171.
-
阐明了CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES对不支持CL_DEVICE_SVM_ATOMICS的设备的行为,请参阅#1171。
-
Fixed links to extension API functions, see #1179.
-
修复了扩展API函数的链接,请参见#1179。
-
Further clarified an error condition for clCreateBuffer with CL_MEM_COPY_HOST_PTR and an SVM pointer that is too small, see #1189.
-
使用CL_MEM_COPY_HOST_PTR和太小的SVM指针进一步澄清了clCreateBuffer的错误条件,请参阅#1189。
-
Fixed a minor typo in the clCreateProgramWithSource introduction, see #1204.
-
修复了clCreateProgramWithSource介绍中的一个小拼写错误,请参阅#1204。
-
Clarified how to properly use and modify OpenCL objects across multiple command-queues, see #1243.
-
阐明了如何在多个命令队列中正确使用和修改OpenCL对象,请参阅#1243。
-
Clarified and corrected many parts of clSetKernelExecInfo, see #1245.
-
澄清并更正了clSetKernelExecInfo的许多部分,请参阅#1245。
-
Improved wording consistency for param_value_size parameters, see #1254.
-
改进了param_value_size参数的措辞一致性,请参阅#1254。
-
Clarified the meaning of num_mip_levels in cl_image_desc, see #1255 and #1272.
-
澄清了cl_image_desc中num_mip_levels的含义,见#1255和#1272。
-
Clarified that functionality will never be removed in minor OpenCL specification revisions, see #1265.
-
澄清了在OpenCL规范的次要修订中永远不会删除功能,请参阅#1265。
-
Clarified that the minimum value for CL_DEVICE_HALF_FP_CONFIG applies to all OpenCL versions, see #1273.
-
澄清了CL_DEVICE_HALF_FP_CONFIG的最小值适用于所有OpenCL版本,请参阅#1273。
-
cl_khr_command_buffer (provisional):
-
Added multi-device wording to clCommandBarrierWithWaitListKHR, see #1146.
-
在clCommandBarrierWithWaitListKHR中添加了多设备措辞,请参阅#1146。
-
Fixed CL_INVALID_CONTEXT command-buffer error definitions, see #1149.
-
修复了CL_INVALID_CONTEXT命令缓冲区错误定义,请参阅#1149。
-
Added a properties parameter to all command-buffer commands to improve extensibility, see #1215.
-
为所有命令缓冲区命令添加了属性参数以提高可扩展性,请参阅#1215。
-
-
cl_khr_command_buffer_mutable_dispatch (provisional):
-
Modified the extension to pass update configs as arrays, rather than linked lists, see #1045.
-
修改了扩展名,将更新配置作为数组而不是链表传递,请参阅#1045。
-
-
-
Clarified acquire and release behavior, see #1176.
-
澄清了获取和释放行为,见#1176。
-
Added a mechanism to import NT handles by name, see #1177.
-
添加了一种按名称导入NT句柄的机制,请参阅#1177。
-
Documented which error condition should be returned when attempting to create a memory object with more than one external handle, see #1249.
-
记录了尝试创建具有多个外部句柄的内存对象时应返回的错误条件,请参阅#1249。
-
-
-
Added a mechanism to import NT handles by name, see #1177.
-
添加了一种按名称导入NT句柄的机制,请参阅#1177。
-
Fixed a typo in the description of clGetSemaphoreHandleForTypeKHR, see #1220.
-
修复了clGetSemaphoreHandleForTypeKHR描述中的拼写错误,请参阅#1220。
-
Clarified that there are no implicit dependencies when waiting on or signaling semaphores using out-of-order queues, see #1231.
-
澄清了使用乱序队列等待或发送信号量时没有隐式依赖关系,请参阅#1231。
-
Documented which error condition should be returned when attempting to create a semaphore with more than one external handle, see #1249.
-
记录了在尝试创建具有多个外部句柄的信号量时应返回的错误条件,请参阅#1249。
-
Unified the CL_INVALID_COMMAND_QUEUE behavior for semaphore signals and waits, see #1256.
-
统一信号量信号和等待的CL_INVALID_COMMAND_QUEUE行为,请参阅#1256。
-
Clarified that clGetSemaphoreHandleForTypeKHR is part of cl_khr_external_semaphore and not cl_khr_external_semaphore_sync_fd, see #1257.
-
澄清了clGetSemaphoreHandleForTypeKHR是cl_khr_external_semaphore的一部分,而不是cl_khr_external_semaphore_sync_fd,见#1257。
-
-
cl_khr_external_semaphore_sync_fd:
-
Fixed typos in the description of clReImportSemaphoreSyncFdKHR, see #1208.
-
修复了clReImportSemaphoreSyncFdKHR描述中的拼写错误,请参阅#1208。
-
Clarified which re-import properties are accepted by clReImportSemaphoreSyncFdKHR, see #1219.
-
澄清了clReImportSemaphoreSyncFdKHR接受哪些重新导入属性,请参阅#1219。
-
-
-
Clarified external semaphore behavior, removing references to permanence, see #938.
-
澄清了外部信号量行为,删除了对永久性的引用,见#938。
-
-
Removed provisional extensions due to lack of implementations and tests, see #1160.
由于缺乏实现和测试,删除了临时扩展,请参阅#1160。-
cl_khr_external_semaphore_dx_fence
(provisional) -
cl_khr_external_memory_dx
(provisional)
-