April 18th 2016 – International Workshop on OpenCL, Vienna – The Khronos™ Group, an open consortium of leading hardware and software companies, announces the immediate availability of the OpenCL™ 2.2, SYCL™ 2.2 and SPIR-V™ 1.1 provisional specifications. OpenCL 2.2 incorporates the OpenCL C++ kernel language for significantly enhanced parallel programming productivity. SYCL 2.2 enables host and device code to be contained in a single source file, while leveraging the full power of OpenCL C++. SPIR-V 1.1 extends the intermediate representation defined by Khronos with native support for shader and compute kernel features to fully support the OpenCL C++ kernel language. These new specifications can be found at www.khronos.org and are released in provisional form to enable developers and implementers to provide feedback before finalization
About SYCL 2.2
SYCL 2.2 enables the capabilities of OpenCL 2.2 to be leveraged while keeping host and device code in a single source file. SYCL aligns the hardware features of OpenCL with the direction of the C++ standard, so that developers can write C++ template libraries that exploit all the capabilities of compute devices, from the smallest OpenCL 1.2 embedded device to the most advanced OpenCL 2.2 accelerators, without writing proprietary or non-standard code. The open-source C++ 17 Parallel STL for SYCL, hosted by Khronos, enables the upcoming C++ standard to support OpenCL 2.2 features such as shared virtual memory, generic pointers and device-side enqueue.
OpenCL C++ and SYCL between them now provide developers the choice of two C++ approaches. For developers who want to separate their device-side kernel source code and their host code, the C++ kernel language can be the best option. This is the approach taken with OpenCL C today, as well as the widely-adopted approach taken by shaders in graphics software. The alternative approach, commonly called ‘single-source’ C++, is the approach taken by SYCL, OpenMP and the C++ 17 Parallel STL. By specifying both SYCL and the C++ kernel language, Khronos provides developers maximum choice, while aligning the two specifications so that code can be easily shared between these complementary approaches.
Questions and Community Feedback
Questions on using SYCL can be asked here. Also, the Khronos SYCL working group is continuing to push the standard forward to support future OpenCL versions and new standard C++ capabilities.