SYCL: C++ Programming for Heterogeneous Parallel Computing

SYCL Logo

What is SYCL

C++ Programming for Heterogeneous Parallel Computing

SYCL is an open, royalty-free, cross-platform abstraction layer that enables code for heterogeneous and offload processors to be written using modern ISO C++, and provides APIs and abstractions to find devices (CPUs, GPUs, FPGAs ...) on which code can be executed, and to manage data resources and code execution on those devices.

What is SYCL?

An Introduction to SYCL


SYCL defines abstractions to enable heterogeneous device programming, an important capability in the modern world which has not yet been solved directly in ISO C++. SYCL has evolved with the intent of influencing C++ direction around heterogeneous compute by creating productized proof points that can be considered in the context of C++ evolution.

A major goal of SYCL is to enable different heterogeneous devices to be used in a single application — for example simultaneous use of CPUs, GPUs, and FPGAs. Although optimized kernel code may differ across the architectures (since SYCL does not guarantee automatic and perfect performance portability across architectures), it provides a consistent language, APIs, and ecosystem in which to write and tune code for accelerator architectures. An application can coherently define variants of code optimized for architectures of interest and can find and dispatch code to those architectures.

SYCL uses generic programming with templates and generic lambda functions to enable higher-level application software to be cleanly coded with optimized acceleration of kernel code across an extensive range of acceleration backend APIs, such as OpenCL and CUDA.

The Khronos SYCL Working Group

Welcome to SYCL


Image Background

"The SYCL programming model gives developers the tools to build accelerated applications on devices such as GPUs using modern C++. There are SYCL applications simulating fusion reactors, molecular dynamics, accelerating machine learning, and computing graph algorithms on FPGAs. SYCL has been designed to deliver cross-vendor high-performance whilst simultaneously providing the abstractions so developers can be productive."

Dr Tom Deakin
SYCL Working Group chair, University of Bristol
SYCL Supercomputing 2024 Promo Image

Essential Development Resources

Key SYCL Resources


Thanks to the support of the Khronos membership and our passionate developer community, there is a rich suite of well-supported developer tools and resources to help quickly get you up and running with your SYCL application development.

Enabling Heterogeneous Programming

Latest Specification: SYCL 2020 - Rev 9


The SYCL 2020 Specification - Rev 1.0 was launched on Feb 9th, 2021 and represented a major step forward and featured over 40 new additions and improvements. SYCL 2020 Rev 9 is now publicly available, see Release Notes for changes.

  • Unified Shared Memory (USM), enabling code with pointers to work naturally without buffers or accessors.
  • Parallel reductions, adding a built-in reduction operation and helping to avoid boilerplate code, providing maximum performance for hardware with built-in operations
  • Work group and sub-group algorithms, enabling efficient operations between work items.
  • Class template argument deduction (CTAD) and deduction guides to enable simpler class template instantiation.
  • Simplification of accessors, which adds a built-in reduction operation, reduces the burden of boilerplate code and enables simplified C++ patterns.
  • Expanded interoperability with different backends, enabling support for backends other than OpenCL.
  • Improvements to atomic operations to be closer to C++ atomics to enable more parallel programming freedom.

Ecosystem Updates & SYCL Playground

Learn More at SYCL.TECH


The SYCL community is flourishing and our sycl.tech website is where you can find some of the latest blog posts, research papers and events, as well as some great resources to help get you get started, including our SYCL Playground and SYCL Academy.

Image Background

Open Access Book

Programming Accelerated Systems Using C++ and SYCL


Learn how to accelerate C++ programs using data parallelism and SYCL - This open access book enables C++ programmers to be at the forefront of this exciting and important development that is helping to push computing to new levels. This updated second edition is full of practical advice, detailed explanations, and code examples to illustrate key topics.

Learn More

Cross Platform Portability

SYCL Implementations


SYCL implementations are available from an increasing number of vendors, including adding support for diverse acceleration API back-ends in addition to OpenCL:

  • Intel oneAPI - The DPC++/C++ Compiler fully supports the Khronos SYCL 2020 specification.
  • AdaptiveCpp - The independent, community-driven modern platform for C++-based heterogeneous programming.
  • triSYCL - A research project to experiment with the specification of the SYCL standard.
  • neoSYCL - A SYCL implementation for SX-Aurora TSUBASA.
  • SimSYCL - a single-threaded, library implementation of SYCL 2020 for testing SYCL applications against simulated hardware.
Image Background

Aligning With Safety Certification Standards

SYCL for Safety Critical Systems


In early 2023, the Khronos Group announced the creation of the SYCL SC Working Group) to create a high-level compute standard for safety-critical systems that leverages the SYCL 2020 standard, and that would adhere to the new MISRA C++ 202X guidelines and align with safety certification standards such as RTCA DO-178C Level A / EASA ED-12C (avionics), ISO 26262/21448 (automotive), IEC 61508 (industrial), and IEC 62304 (Medical).

Learn More

Community Discussions & Getting Involved

Help Shape the Future of SYCL


The Khronos SYCL Working Group is constantly working to advance the use of SYCL and evolve the standard to meet the needs of the community and any organization is welcome to make contributions.

Community Discussions

You'll find thriving SYCL discussions on several platforms that provide a great way to get involved.

Join the Khronos Group

If you are working with SYCL and wish to get involved in helping shape its future, please consider joining Khronos and our Working Group. Any organization is welcome to join, and multiple levels of membership are available to enable any organization, large or small, to get involved.

Join Khronos

Stay Informed

Subscribe to the SYCL Newsletter


Stay in the loop by receiving the latest updates to the SYCL open standards, plus ecosystem updates and event news direct to your inbox.

Click to Subscribe

By subscribing you are consenting to receive marketing emails about news and events relating to the Khronos Group. You can unsubscribe at any time by following the “Unsubscribe” link included in each email sent. For information on our privacy practices and commitment to protecting your privacy, please review our Privacy Policy. We do not sell your contact information to third parties.

Khronos Standard Additional links and information