The Khronos Group has announced the ratification and public release of an update to the OpenCL 1.2 specification for parallel programming of modern processors. This backwards compatible version updates the core OpenCL 1.2 specification with bug fixes and clarifications and defines additional optional extensions for enhanced performance, functionality and robustness for parallel programming on a wide variety of platforms.
“The OpenCL working group continues to listen closely to the demands of the developer community, and this update provides a timely increase in functionality and reliability of code ported across vendor implementations. The new extensions enable early access to functionality for key use cases, including security capabilities for implementations of WebCL that enable access to OpenCL within a browser,” said Neil Trevett, chairman of the OpenCL working group, president of the Khronos Group and vice president of mobile content at Nvidia.
Optional extensions are not required to be supported by a conformant OpenCL implementation, but are expected to be widely available; they define functionality that is likely to move into the required feature set in a future revision of the OpenCL specification. ARM, PowerVR and Vivante, three designers of mobile graphics processing IP, have already endorsed the updated OpenCL 1.2 extensions.
The new OpenCL 1.2 extensions provide enhanced parallel programming flexibility, functionality and performance through updates and additions including:
- Enabling an OpenCL image to be created from a OpenGL multi-sampled texture that is designed for multi-sampled anti-aliasing using color or depth, providing more flexibility in interoperating 3D graphics and compute;
- Creating 2D images from an OpenCL buffer to enable flexibility in which memory structures are processed using the advanced properties of OpenCL images;
- Providing security features for WebCL implementations layered over OpenCL including: the ability to initialize local and private memory before a kernel begins execution, and a new query and API to terminate an OpenCL context to ensure a long running kernel does not affect system stability;
- Loading an OpenCL program object from a standard portable intermediate representation (SPIR) instance. SPIR is a vendor neutral non-source representation for OpenCL C programs that enables increased tool chain flexibility and avoids the need to ship kernel source in commercial applications.
“ARM sees GPU Compute functionality as a fundamental enabler for enhanced user experiences and increased energy efficiency in mobile and consumer devices. OpenCL is a key standard for turning these goals into reality. We look forward to expanding our current full profile OpenCL 1.1 support and to including OpenCL 1.2 as part of the ARM Mali-T600 GPU series,” said Jem Davies, ARM fellow and vice president of technology, media processing division, ARM
“We continue to see growing interest from our customers and partners in using OpenCL to deliver high performance compute from our GPUs. Imagination’s PowerVR Series6 architecture is optimized for OpenCL, so we are delighted to see this latest update to the specification, which brings improved functionality in key application areas such as image processing to GPU Compute. We remain convinced that OpenCL will be a ‘cornerstone’ API for parallel and heterogeneous processing in the years ahead,” said Tony King-Smith, vice-president marketing for Imagination Technologies.
“Vivante is pleased to be one of the leading mobile IP promoters and contributors of OpenCL 1.2. With strong industry support and a robust ecosystem built around compute, OpenCL 1.2 strengthens the foundation and building blocks to enable broad adoption of the compute API across all market segments. As the technology goes mainstream, our goal is to make sure consumers using Vivante products get the perfect balance of performance, features, programmability, and extreme low power,” said Wei-Jin Dai, president and CEO of Vivante.