Khronos Group releases OpenCL 1.2
The Khronos Group has announced the ratification of version 1.2 of the OpenCL (Open Computing Language) standard. Developed under the industry panel's leadership, the standard defines parallel programming interfaces for applications that run on different OpenCL-compatible processors. The OpenCL standard is designed to enable other general applications to harness the computing power of graphics processors by allowing computations to be distributed across multiple graphics processors and CPUs. OpenCL uses a subset of the ISO-certified C99 C dialect with added parallel programming extensions.
OpenCL 1.2 is designed to be compatible with earlier versions of the standard (OpenCL 1.0, 1.1). A new addition is the ability to partition a device into sub-devices in order to directly control work assignment to particular compute units or effectively use shared hardware resources such as a cache. OpenCL also allows programs to be compiled and their objects to be linked as separate processes bringing the flexibility of traditional compilers to OpenCL and allowing the creation of OpenCL libraries.
Other highlights include the support for the sharing of "surfaces" with Microsoft DirectX 9/11 and advanced image processing functions such as 1D and 2D image arrays. 1D and 2D image arrays also can be created from OpenGL textures using the OpenGL extension. More information can be found in the specification document, which is more than 370 pages long. A good overview of the most important aspects of the OpenCL is available on the OpenCL API 1.2 quick reference card.
Version 1.0 of this standard was released in December 2008, followed by version 1.1 in June 2010. More than 30 companies including AMD, ARM, Intel and NVIDIA have contributed to the development of the new standard.