Khronos steps towards widespread deployment of SYCL
The Khronos Group has announced the ratification and public release of the SYCL 2020 Provisional Specification. SYCL is a standard C++ based heterogeneous parallel programming framework for accelerating High Performance Computing (HPC), machine learning, embedded computing, and compute-intensive desktop applications on a wide range of processor architectures, including CPUs, GPUs, FPGAs, and AI processors.
The SYCL 2020 Provisional Specification is publicly available today to enable feedback from developers and implementers before the eventual specification finalization and release of the SYCL 2020 Adopters Program, which will enable implementers to be officially conformant—tentatively expected by the end of the year.
A royalty-free open standard, SYCL 2020 enables significant programmer productivity through an expressive domain-specific language, compact code, and simplified common patterns, such as Class Template Argument Deduction and Deduction Guides, all while preserving significant backwards compatibility with previous versions. SYCL 2020 is based on C++17 and includes new programming abstractions, such as unified shared memory, reductions, group algorithms, and sub-groups to enable high-performance applications across diverse hardware architectures.
“SYCL 2020 is a significant step towards bringing C++ heterogeneous programming to all,” said Michael Wong, Codeplay Vice President and SYCL working group chair. “It supports diverse applications from HPC supercomputing centers, to powerful machine learning frameworks, to creative and professional applications on embedded and desktop PCs. These real-world insights will enable the SYCL Working Group to achieve our long-term dream of converging with ISO to bring parallel heterogeneous programming to modern C++ in an open standard collaborated by many companies across many varieties of processors.”
In parallel with the release of the SYCL 2020 specification, the SYCL ecosystem continues to grow with increased development of compilers, runtimes, libraries, and tools. A beta implementation of SYCL 2020 is available in Intel’s DPC++. Codeplay’s ComputeCpp SYCL 1.2.1 conformant implementation includes selected SYCL 2020 features as extensions, with more being added over time. Both implementations are based on the Clang open-source compiler framework. Developers can download either implementation and experiment with SYCL 2020 features today.
At the Argonne National Laboratory, Exascale supercomputer systems using Intel chips are being built and new implementations seek to enable developers to easily scale C++ applications to accelerator clusters using SYCL. In Europe, the Cineca Supercomputing center is using the Celerity distributed runtime system, built on top of SYCL, to program the new Marconi100 cluster equipped with 3,920 GPUs and ranked #9 in the Top500 (June 2020).
SYCL 2020 continues to leverage OpenCL as a backend target to reach into diverse processor accelerator architectures, but the latest SYCL implementations are adding additional backends, providing enhanced deployment flexibility for SYCL developers.
"Our users will benefit from features in the provisional SYCL 2020 specification,” said Hal Finkel, lead for compiler technology and programming languages, Argonne National Laboratory’s Leadership Computing Facility. “New features, such as support for unified memory and reductions, are important capabilities for programming high-performance-computing hardware. In addition, support for C++17 will allow our users to write better C++ code, with both language features (such as deduction guides) and library features (such as std::optional)."