SYCL 2020 features are available now in Intel’s DPC++ and Codeplay’s ComputeCpp; Developers encouraged to provide feedback on the publicly available specification for C++ based heterogeneous parallel programming
Beaverton, OR – June 30, 2020 – Today, The Khronos® Group, an open consortium of industry-leading companies creating graphics and compute interoperability standards, announces 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.
To provide feedback on the SYCL 2020 specification, visit the Khronos SYCL Community Forum.
Industry Support for SYCL 2020
“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).”
“At Cineca, based on our experience, we confirm the value that SYCL is bringing to the development of high performance computing in a hybrid environment. In fact, through SYCL, it is possible to build a common and portable environment for the development of computing-intensive applications to be executed on HPC architectures configured with floating point accelerators, which allows industries and scientific communities to use the common availability of development tools, libraries of algorithms, accumulated experience,” said Sanzio Bassini, director of supercomputing, Application Innovation Dept, Cineca. “Cineca is already running the distributed Celerity runtime on top of several SYCL implementations on the new Marconi100 cluster, ranked no. 9 in the Top500 (June 2020), providing users with a unified API for both about 4000 NVIDIA Volta V100 GPUs and IBM Power9 host processors. SYCL 2020 is a big step towards a much leaner API that unlocks all the potential provided by modern C++ standards for accelerated data-parallel kernels, making the development of large-scale scientific software easier and more sustainable, either for industrial oriented domain applications for industries, either for scientific domain oriented applications.”
“We have seen a huge increase in SYCL developer adoption since the release of the last SYCL specification. Developers are demanding a model that enables them to write software that offers both performance and programmability across a wide range of vendor processors. SYCL provides this,” said Andrew Richards, founder and CEO, Codeplay Software. “The new features in SYCL 2020 bring some crucial enhancements that will benefit developers, with less code to write and the ability to target non-OpenCL devices.”
“Imagination recognizes the benefit of SYCL across multiple markets, enabling a straightforward and performant way to exploit the compute performance of our IP and is why our software stacks have been designed to improve SYCL performance,” said Mark Butler, vice president of software engineering, Imagination Technologies. “The ability to quickly port workloads from other proprietary APIs is a huge benefit, easing the transition from development on desktop to deployment on embedded systems. SYCL 2020 is a positive step forward for this API, enabling higher levels of performance, which will benefit developers and platform creators.”
“The SYCL 2020 Provisional Specification marks a significant milestone helping improve time-to-performance in programming heterogeneous computing systems through more productive and familiar C++ programming constructs,” said Jeff McVeigh, vice president, datacenter XPU products and solutions, Intel. “Through active collaboration with The Khronos Group, the new specification includes significant features pioneered in oneAPI’s Data Parallel C++, such as unified shared memory, group algorithms, and sub-groups that were upstreamed to SYCL 2020. Moving forward, Intel’s oneAPI toolkits, which include the SYCL-based Intel® oneAPI DPC++ Compiler, will deliver productivity and performance for open, cross-architecture programming.”
”NSITEXE supports the SYCL 2020 technology, which is gaining attention in embedded applications,” said Hideki Sugimoto, CTO, NSITEXE, Inc. “We are considering adopting this technology in our next generation of IP platforms.”
“Xilinx is excited about the progress achieved with SYCL 2020,” said Ralph Wittig, fellow, Xilinx. “This single-source C++ framework unifies host and device code for various kinds of accelerators in the same C++ program. With host-fallback device execution, developers can emulate device code on a CPU, exploring hardware-software co-design for adaptable computing devices. SYCL is now extensible via customizable back-ends, enabling device plug-ins for FPGAs and ACAPs.”
Khronos® and Vulkan® are registered trademarks, and 3D Commerce™, ANARI™, glTF™, NNEF™, OpenVG™, OpenVX™, SPIR™, SPIR-V™, SYCL™, and WebGL™ are trademarks of The Khronos Group Inc. OpenXR™ is a trademark owned by The Khronos Group Inc. and is registered as a trademark in China, the European Union, Japan and the United Kingdom. OpenCL™ is a trademark of Apple Inc. and OpenGL® is a registered trademark and the OpenGL ES™ and OpenGL SC™ logos are trademarks of Hewlett Packard Enterprise used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.