MacWorld is reporting that the Khronos group has ratified OpenCL version 1.1. If you’re not familiar with OpenCL, it is a standard that is spearheaded by Apple that allows programmers to use multicore CPUs and GPUs to speed up intense calculations. While this sounds very nerdy, it means better, faster applications for the end user.
One of the updates, which is superficially confusing, is better support for using OpenGL in this standard. OpenCL and OpenGL are two separate specs that do different things, but they interact with each other to get the end result that the developer wants.
If you’re interested in the specifics, here are the bullet-points from the Khronos Group:
OpenCL 1.1 is fully backwards compatible with OpenCL 1.0 and includes significant new functionality including:
- Host-thread safety, enabling OpenCL commands to be enqueued e from multiple hosts;
- Sub-buffer objects to distribute regions of a buffer across multiple OpenCL devices;
- User events to enable enqueued OpenCL commands to wait on external events;
- Event callbacks that can be used to enqueue new OpenCL commands based on event state changes in a non-blocking manner;
- 3-component vector data types;
- Global work-offset which enable kernels to operate on different portions of the NDRange;
- Memory object destructor callback;
- Read, write and copy a 1D, 2D or 3D rectangular region of a buffer object;
- Mirrored repeat addressing mode and additional image formats;
- New OpenCL C built-in functions such as integer clamp, shuffle and asynchronous strided copies;
- Improved OpenGL interoperability through efficient sharing of images and buffers by linking OpenCL event objects to OpenGL fence sync objects;
- Optional features in OpenCL 1.0 have been bought into core OpenCL 1.1 including: writes to a pointer of bytes or shorts from a kernel, and conversion of atomics to 32-bit integers in local or global memory.