The Khronos Group announced the completion of the OpenCL 1.2 specification, which promises enhanced performance and functionality. New features include seamless sharing of media and surfaces with DirectX 9 and 11, enhanced image support, custom devices and kernels, device partitioning and separate compilation and linking of objects.
The Khronos™ Group today announced the ratification and public release of the OpenCL™ 1.2 specification, the latest update to the open, royalty-free standard for cross-platform, parallel programming of modern processors. Released eighteen months after OpenCL 1.1, this new version provides enhanced performance and functionality for parallel programming in a backwards compatible specification that is the result of cooperation by over thirty industry-leading companies. Khronos has updated and expanded its comprehensive OpenCL conformance test suite to ensure that implementations of the new specification provide a complete and reliable platform for cross-platform application development. The OpenCL 1.2 specifications, online reference pages and reference cards are available at www.khronos.org/opencl/.
“The OpenCL working group is listening carefully to feedback from the developer and middleware community to provide significant and timely functionality for heterogeneous computing in this cross vendor open standard,” said Neil Trevett, chair of the OpenCL working group, president of the Khronos Group and vice president of mobile content at NVIDIA. “The OpenCL working group is also broadening its membership and has growing representation from the mobile and embedded industries and is enabling innovative devices such as FPGAs to be driven through OpenCL.”
OpenCL 1.2 enables significantly enhanced parallel programming flexibility, functionality and performance through many updates and additions including:
- Device partitioning - enabling applications to partition a device into sub-devices to directly control work assignment to particular compute units, reserve a part of the device for use for high priority/latency-sensitive tasks, or effectively use shared hardware resources such as a cache;
- Separate compilation and linking of objects - providing the capabilities and flexibility of traditional compilers enabling the creation of libraries of OpenCL programs for other programs to link to;
- Enhanced image support - including added support for 1D images and 1D & 2D image arrays. Also, the OpenGL sharing extension now enables an OpenCL image to be created from OpenGL 1D textures and 1D & 2D texture arrays;
- Built-in kernels represent the capabilities of specialized or non-programmable hardware and associated firmware, such as video encoder/decoders and digital signal processors, enabling these custom devices to be driven from and integrated closely with the OpenCL framework;
- DX9 Media Surface Sharing - enables efficient sharing between OpenCL and DirectX 9 or DXVA media surfaces;
- DX11 Surface Sharing - for seamless sharing between OpenCL and DirectX 11 surfaces.