In March this year the Khronos Group released the SYCL 1.2 provisional specification for industry feedback and only six months later Codeplay were demonstrating their prototype implementation of SYCL at the recent Multicore Challenge conference in the UK.

SYCL 1.2 is an abstraction layer built upon OpenCL 1.2 that developers can use create applications and frameworks that leverage the power of OpenCL but with the ease-of-use and flexibility of C++.

As Andrew Richards, CEO at Codeplay and the Khronos SYCL Working Group chair stated in the original Khronos press release. “Developers have been requesting C++ for OpenCL to help them build large applications quickly and efficiently and there are lots of useful C++ libraries that want to port to OpenCL. SYCL makes this possible ….

paul-sycl-multicoreAt the event Paul Keir the head of research at Codeplay presented an overview of SYCL along with a number of code samples before going on to demonstrate the command line interface to their SYCL 1.2 implementation, mentioning along the way that it:

  • Supports Windows and Ubuntu Linux
  • Integrates with the Visual Studio IDE
  • Is used on the EU FP7 project: LPGPU (Lower Power Parallel Computing on GPUs)
  • Is a preliminary implementation based on the provisional specification of the API
  • Is supported on Intel and AMD platforms supporting the SPIR 1.2 (Standard Portable Intermediate Representation)
  • Currently focused on Functionality and is not performance optimised

Developers looking to get their hands on an evaluation licence should contact Codeplay directly for additional information.

Other vendors voicing public support for SYCL include:

  • Qualcomm; “Qualcomm Technologies, Inc. worked with Khronos on the provisional specification of SYCL 1.2 in order to help enable mobile developers to utilize C++ for programming OpenCL-supporting GPUs.” and,
  • HSA; “SYCL represents a tremendous step forward for C++ programmers wishing to maximize performance of their applications.”

Codeplay have also published a number of articles on SYCL, including an Introduction and FAQ and a couple of tutorial examples showing the use of SYCL for Vector Addition.