Abstraction layer for leveraging C++ and OpenCL

SYCL (sɪkəl - as in sickle) is a royalty-free, cross-platform C++ abstraction layer that builds on the underlying concepts, portability and efficiency of OpenCL, while adding the ease-of-use and flexibility of C++. For example, SYCL enables single source development where C++ template functions can contain both host and device code to construct complex algorithms that use OpenCL acceleration, and then re-use them throughout their source code on different types of data.

SYCL 1.2

This provisional SYCL 1.2 specification was released on March 19, 2014 to provide an opportunity for the growing community of OpenCL developers to provide feedback before the final specification is released.  The provisional specification includes the following features:

  • Specifications for creating C++ template libraries and compilers using the C++11 standard
  • Easy to use, production grade API – built on-top of OpenCL and SPIR
  • Compatible with standard CPU C++ compilers across multiple platforms, as well as enabling new SYCL 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

Request for Community Feedback

The Khronos SYCL working group is seeking your feedback.  Your input, however big or small, really helps us improve and enhance the specification and define SYCL’s development roadmap.