|
Appendix E – Changes
E.1 Summary of changes from OpenCL 1.0
The following features are added to the OpenCL platform layer and runtime (sections 4 and 5):
Following queries to table 4.3
o CL_DEVICE_NATIVE_VECTOR_WIDTH_{CHAR | SHORT | INT | LONG | FLOAT |
DOUBLE | HALF}
o CL_DEVICE_HOST_UNIFIED_MEMORY
o CL_DEVICE_OPENCL_C_VERSION
CL_CONTEXT_NUM_DEVICES to the list of queries specified to clGetContextInfo.
Optional image formats: CL_Rx, CL_RGx and 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.
clEnqueueReadBufferRect, clEnqueueWriteBufferRect and
clEnqueueCopyBufferRect APIs to read from, write to and copy a rectangular region of
a buffer object respectively.
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.
Options that control the OpenCL C version used when building Pro-Agram executable.
These are described in section 5.6.3.5.
CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE to the list of queries
specified to 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.
clSetEventCallback API to register a callback function for a specific command
execution status.
The following modifications are made to the OpenCL platform layer and runtime (sections 4 and
5):
o CL_DEVICE_MAX_PARAMETER_SIZE from 256 to 1024 bytes
o CL_DEVICE_LOCAL_MEM_SIZE from 16 KB to 32 KB.
The global_work_offset argument in clEnqueueNDRangeKernel can be a non-NULL
value.
All API calls except clSetKernelArg are thread-safe.
The following features are added to the OpenCL C programming language (section 6):
3-component vector data types.
New built-in functions
o get_global_offset work-item function defined in section 6.11.1.
o minmag, maxmag math functions defined in section 6.11.2.
o clamp integer function defined in section 6.11.3.
o (vector, scalar) variant of integer functions min and max in section 6.11.3.
o async_work_group_strided_copy defined in section 6.11.10.
o vec_step, shuffle and shuffle2 defined in section 6.11.12.
cl_khr_byte_addressable_store extension is a core feature.
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_.
Macros CL_VERSION_1_0 and CL_VERSION_1_1.
The following features in OpenCL 1.0 are deprecated:
The clSetCommandQueueProperty API is no longer supported in OpenCL 1.1.
The __ROUNDING_MODE__ macro is no longer supported in OpenCL C 1.1.
The following new extensions are added to section 9:
cl_khr_gl_event – Creating a CL event object from a GL sync object.
cl_khr_d3d10_sharing – Sharing memory objects with Direct3D 10.
The following modifications are made to the OpenCL ES Profile described in section 10:
64-bit integer support is optional. |
|