SYCL – Introduction and Best Practices

The IDEAS Productivity project, in partnership with the DOE Computing Facilities of the ALCF, OLCF, and NERSC and the DOE Exascale Computing Project (ECP) has resumed the webinar series on Best Practices for HPC Software Developers, which we began in 2016.

As part of this series, we offer one-hour webinars on topics in scientific software development and high-performance computing, approximately once a month. The June webinar is titled SYCL – Introduction and Best Practices, and will be presented by Thomas Applencourt (Argonne National Laboratory).The webinar has been rescheduled: it will now take place on Wednesday, June 17, 2020 at 1:00 pm ET.


SYCL is a single-source heterogeneous programming model based on standard C++. It uses C++ templates and lambda functions for host and device code. SYCL builds on the underlying concepts of portability and efficiency of OpenCL that enable code for heterogeneous processors; however, it is less verbose than OpenCL. The single-source programming enables the host and kernel code for an application to be contained in the same source file, in a type-safe way and with the simplicity of a cross-platform asynchronous task graph. The webinar provided an overview of the SYCL concepts, compilation, and runtime. No prior knowledge of OpenCL was required for this webinar. The presenter reviewed the core concepts of SYCL, and walked through several code examples to highlight its key features and illustrate best practices. SYCL by design is hardware agnostic and offers the potential to be portable across many of DOE’s largest machines.