The Khronos group has released new specifications for WebCL 1.0, SYCL 1.2 and EGL 1.5. These announcements are aimed at providing easier programming for heterogeneous system architecture.
WebCL is aimed at improving the development of web applications for heterogenous computing using OpenCL by making a subset of the available APIs usable in web browsers.
SYCL is a cross-platform abstraction layer that enables the development of applications and frameworks that build on the underlying concepts of OpenCL, while adding the ease-of-use and flexibility of C++.
The Khronos group also announced the official conformance test suite for the OpenCL 2.0 specification, making it possible for implementers to certify that their implementations conform to specifications through the Khronos OpenCL Adopters Program.
The WebCL 1.0 extends the capabilities of HTML5 browsers by enabling developers to offload computationally intensive processing to available computational resources such as multicore CPUs and GPUs. This announcement is a clear sign that the Khronos group is firmly setting its sights on heterogeneous computing with the new specification of OpenCL.
WebCL defines JavaScript bindings to OpenCL APIs that enable Web applications to compile OpenCL C kernels and manage their parallel execution. Like WebGL, WebCL is expected to enable a rich ecosystem of JavaScript middleware that provides access to accelerated functionality to a wide diversity of Web developers.
WebCL 1.0 supports OpenCL 1.1 Embedded Profile functionality and can also be layered over any conformant OpenCL 1.1 or OpenCL 1.2 implementation.
WebCL 1.0 features and utilities include:
Standardised, portable and efficient access to heterogeneous multicore computing in the browser, through JavaScript bindings to OpenCL;
Architected and designed for security and robustness using multiple techniques including: leveraging OpenCL security extensions for memory initialization and context termination, and an open source WebCL Validator to enforce security protections, to prevent out of bounds memory accesses and to enforce memory initialization;
Interoperability between WebCL and WebGL, through a defined WebCL extension, to enable Web applications to employ accelerated graphics and compute for rich visual computing applications within the browser;
An open source OpenCL to WebCL Kernel Translator to enable rapid porting of native OpenCL applications to WebCL.
The WebCL 1.0 specification is the result of feedback from the Web community based on the public working draft and the Khronos WebCL Working Group, including: Adobe, AMD, Aptina, ARM, Google, Imagination Technologies, Mozilla, Intel, Nokia, NVIDIA, Opera Software, Samsung, and Qualcomm.
‘AMD is very excited to see the Khronos Group finalise WebCL 1.0, bringing heterogeneous computing into the family of HTML5 technologies. The web browser is the most convenient and common interface used by connected end-users for investigation, data discovery and exploration. By making it easy to exploit compute capabilities through WebCL, we believe the number of advanced browser based applications will greatly increase,’ said Gregory Stoner, senior director, HSA Application Engineering, AMD, and managing director of the HSA (Heterogeneous System Architecture) Foundation. ‘AMD is proud to contribute a WebCL implementation for Chrome and is looking for feedback and contributions on this open-source project.’
The release of provisional specification of SYCL 1.2 is step towards enabling OpenCL programming in C++. While OpenCL is based on C programming language C++ has more functionality so this release can be seen as a way to bridge the gap between SYCL and CUDA which makes use of C++ functionality.
SYCL can provide single source development where C++ template functions can contain both host and device code to construct complex algorithms that use OpenCL acceleration - and then enable re-use of those templates throughout the source code of an application to operate on different types of data.
The SYCL 1.2 provisional specification supports OpenCL 1.2 and has been released to enable the growing community of OpenCL developers to provide feedback before the specification is finalised.
While SYCL is one possible solution for high-level parallel programming that leverages C++ programming techniques, the OpenCL group encourages innovation in diverse programming models for heterogeneous systems, including building on top of the SPIR low-level intermediate representation, using the open source CLU libraries for prototyping, or through custom techniques.
SYCL 1.2 will enable industry innovation in OpenCL-based programming frameworks:
API specifications for creating C++ template libraries and compilers using the C++11 standard;
Easy to use, production grade API that can be built on-top of OpenCL and SPIR;
Compatible with standard CPU C++ compilers across multiple platforms, as well as enabling new SYCL-based device compilers to target OpenCL devices;
Asynchronous, low-level access to OpenCL features for high performance and low-latency – while retaining ease of use;
Khronos open royalty-free standard - to guarantee ongoing support and reciprocal IP coverage;
OpenGL Integration to enable sharing of image and textures with SYCL as well as OpenCL;
Development in parallel with OpenCL – future releases are expected to support upcoming OpenCL 2.0 implementations and track future OpenCL releases.
The official conformance test suite for the OpenCL 2.0 has also been released this makes it possible for implementers to certify their implementations through the Khronos OpenCL Adopters Program.
Khronos has also released a set of header files for OpenCL 2.0 and an updated specification with a number of clarifications and corrections to the specification first released in November 2013.
‘The availability of robust conformance tests is just as critical to a thriving open standard as the specification itself as they ensure cross-vendor consistency, and enable Khronos to protect the integrity of the standard in the marketplace,’ said Neil Trevett, chair of the OpenCL working group, president of the Khronos Group and vice president of mobile ecosystem at NVIDIA. ‘The members of the OpenCL working group have contributed significant effort to ensure the OpenCL 2.0 tests match the high quality of the specification. We expect the first conformant implementations of OpenCL 2.0 to be available to developers in the first half of 2014.’