C++ single-source heterogeneous programming for OpenCL 1.2

May 11th 2015, IWOCL, Stanford University, CA – The Khronos™ Group,an open consortium of leading hardware and software companies, today announced the ratification and public release of the finalized SYCL ™ 1.2 specification. SYCL for OpenCL™ enables code for heterogeneous processors to be written in a “single-source” style using completely standard C++. The multi-vendor SYCL 1.2 standard is available royalty-free for industry use, and the full specification together with details about the SYCL conformance test suite and Adopters Program can be found at www.khronos.org/sycl.

SYCL single-source programming enables host and kernel code to be contained in the same source file, using the same templates for both, with full OpenCL acceleration. Developers can program at a higher level than OpenCL C, but always have access to existing code through seamless integration with OpenCL programs, C/C++ libraries and frameworks such as OpenMP. SYCL includes templates and lambda functions for higher-level application software that can be cleanly coded for optimized acceleration across the extensive range of shipping OpenCL 1.2 implementations.

“SYCL is complementary to the ongoing evolution of the OpenCL kernel language and we see the lessons and technologies from SYCL and the evolving OpenCL C++ kernel language merging and influencing each other over time,” said Andrew Richards, chair of the SYCL working group and CEO of Codeplay. “C++ programing techniques can help provide performance portability for OpenCL applications by providing highly adaptive parallel software than is easily used and re-used.”

OpenCL’s interop capability is inherited by SYCL to enable applications to use SYCL in conjunction with OpenGL, DirectX and the upcoming Vulkan API without memory-copy overhead. In return, SYCL can provide simplified error handling and effective compute and communication overlap between host and devices.

SYCL 1.2 can be implemented to work with a variety of existing and new C++ compilers and layers over OpenCL 1.2 implementations from diverse vendors. SYCL 1.2 builds on the features of C++11, with additional support for C++14 and also will enable C++17 Parallel STL programs to be accelerated on OpenCL devices in the future. SYCL 1.2 also builds on the Khronos SPIR™ 1.2 portable binary format and fully leverages the ongoing work at the OpenCL and SPIR working groups at Khronos with the aim to provide long-term support for future OpenCL capabilities, including OpenCL 2.1 and SPIR-V™.

The C++ standards body is working on a new Parallel STL standard for C++17. To support this effort, Khronos is kick-starting an open-source project to support Parallel STL on top of SYCL, running on OpenCL devices.This project is hosted at https://github.com/KhronosGroup/SyclParallelSTL.

See SYCL at IWOCL 2015

Khronos is pleased to have a notable profile at IWOCL 2015, the 3rd International Workshop on OpenCL. IWOCL is a community led meeting of OpenCL developers, researchers and suppliers to share OpenCL best practice and to advance the OpenCL standard. More information on IWOCL, including how to register, can be found at www.iwocl.org. Khronos SYCL sessions are as follows:

May 12, 9:30AM : in-depth tutorial “Khronos SYCL for OpenCL”

: in-depth tutorial “Khronos SYCL for OpenCL” May 12, 3:30PM : a FREE “Khronos Developer Feedback and Panel Discussion” covering OpenCL 2.1, SYCL 1.2 and SPIR

: a FREE “Khronos Developer Feedback and Panel Discussion” covering OpenCL 2.1, SYCL 1.2 and SPIR May 13 12:10PM: SYCL working group chair Andrew Richards will be presenting on SYCL 1.2.

Industry Support for SYCL

“It is great to see innovation in higher-level programming languages that tap into the tremendous compute power of OpenCL capable devices” says Greg Stoner, senior director at AMD. “Providing developers with a single-source C++ programming model that runs across multiple vendor devices showcases the potential that an open compute standard can deliver. We look forward to seeing this trend continue to unfold in the future.”

“At Codeplay, we believe software developers benefit from working with open standards because it gives them the greatest flexibility to deploy their software to their customers,” said Maria Rovatsou, Principal Software Engineer, SYCL technologies, Codeplay. “At the same time, we recognize that users are demanding ever higher-performance software and longer battery lifetimes on devices that are available everywhere. We worked hard to fulfill this challenge to give C++ developers the full power and performance of OpenCL via the SYCL open standard.”

“At Imagination, we are committed to helping drive standards around heterogeneous processing and GPU compute. We’re delighted to see SYCL running on PowerVR GPUs, extending the power and efficiency of GPU accelerated computing to a greater number of mobile apps developers” said Peter McGuinness, director of Multimedia Technology Marketing, Imagination Technologies.”

“Qualcomm Technologies, Inc. worked with Khronos on the specification of SYCL 1.2 in order to help enable mobile developers to utilize C++ for programming OpenCL-supporting GPUs,” said Eric Demers, vice president of GPU hardware at Qualcomm Technologies, Inc. “SYCL 1.2 has the potential to enable the development of portable libraries that abstract away the host/device boundary, delivering the necessary flexibility to use higher-level C++ abstractions in mobile devices that use Snapdragon™ processors.”

"SYCL is the open standard, higher-level programming model the heterogeneous computing community has been waiting years for. SYCL tracks the latest developments in modern C++, with a clear path to C++ 17 to simplify parallel programming across multiple platforms. What I find unique about SYCL is the broad range application domains it is suitable for: allowing simple accelerator programming for beginner programmers by using only modern C++, but also enables power programmers to use advanced features to reach the ultimate performance while keeping an elegant software architecture," said Ronan Keryell, lead developer of triSYCL, the Open Source SYCL implementation project.

About The Khronos Group

The Khronos Group is an industry consortium creating open standards to enable the authoring and acceleration of parallel computing, graphics, vision, sensor processing and dynamic media on a wide variety of platforms and devices. Khronos standards include Vulkan™, OpenGL®, OpenGL® ES, WebGL™, OpenCL™, SPIR™, SPIR-V™, SYCL™, WebCL™, OpenVX™, EGL™, OpenMAX™, OpenVG™, OpenSL ES™, StreamInput™, COLLADA™, and glTF™. All Khronos members are enabled to contribute to the development of Khronos specifications, are empowered to vote at various stages before public deployment, and are able to accelerate the delivery of their cutting-edge media platforms and applications through early access to specification drafts and conformance tests. More information is available at www.khronos.org.

###