ABSTRACT
In the first qurater of 2020 the SYCL™ working group of the Khronos® Group will seek to ratify a new provisional revision of the SYCL specification. This new revision will bring a number of significant improvements that will improve the portability and capabilities of the standard that will continue the goal of the SYCL programming model to provide a modern C++ programming model that is portable across the widest range of hardware.
Since the last revision of SYCL there are now four implementations of the standard; ComputeCpp; the first conformant commercial implementation, DPC++; Intel's open-source SYCL implementation that is part of oneAPI, triSYCL; an open-source implementation developed by Xilinx, and hipSYCL; an open-source implementation based on AMD's HIP stack. The SYCL working group has also grown and now include a number of users including members from the US Department of Energy national laboratories, who are helping to shape future revisions of SYCL to meet the needs of users and get better alignment with the evolution of the ISO C++ standard.
Over recent years the SYCL working group has gathered feedback from users and implementors across various domains and is introducing a number of flagship features to support expanding platform support and user requirements.
The first of these is SYCL generalization; which removes the restriction that SYCL must be implemented on top of OpenCL, allowing conformant SYCL implementations to target a number of other back-ends. The change also introduces new APIs which allow users to query the available back-ends of a SYCL implementation, make use of back-end specific extensions and interoperate with the underlying API of a back-end. With this change, SYCL becomes a high-level programming model that can target a great variety of hardware, enabling both generic programming and back-end-specific optimizations.
The next is a new API for managing the process of compiling and linking SYCL kernels from various different sources, including offline compilation, which will now be a first class feature SYCL. This new API is designed to be flexible such that it can support alternative back-ends to OpenCL and provide a more strictly typed and thread-safe interface for compiling and linking kernels. The new interface has built-in support for specialization constants, a feature already present in SPIR-V, Vulkan and OpenCL that so far has been only an extension provided by Codeplay. We expect the usage of specialization constants in SYCL applications to become one of the key aspects for achieving performance on different hardware.
Another feature is the introduction of host tasks, which will provide users a way to submit arbitrary C++ code as tasks scheduled within a SYCL task graph. These tasks can be used as callbacks triggered after device events, but will also provide the ability to perform backend interoperability with the underlying backend API from within the task.
Index Terms
- SYCL 2020: More than meets the eye
Recommendations
A Comparison of SYCL, OpenCL, CUDA, and OpenMP for Massively Parallel Support Vector Machine Classification on Multi-Vendor Hardware
IWOCL '22: Proceedings of the 10th International Workshop on OpenCLIn scientific computing and Artificial Intelligence (AI), which both rely on massively parallel tasks, frameworks like the Compute Unified Device Architecture (CUDA) and the Open Computing Language (OpenCL) are widely used to harvest the computational ...
Evaluating the Performance of Integer Sum Reduction in SYCL on GPUs
ICPP Workshops '21: 50th International Conference on Parallel Processing WorkshopSYCL is a promising programming model for heterogeneous computing—allowing a single-source code to target devices from multiple vendors. One significant task performed on these accelerators is a primitive operation for integer sum reduction. This paper ...
CLBlast: A Tuned OpenCL BLAS Library
IWOCL '18: Proceedings of the International Workshop on OpenCLThis work introduces CLBlast, an open-source BLAS library providing optimized OpenCL routines to accelerate dense linear algebra for a wide variety of devices. It is targeted at machine learning and HPC applications and thus provides a fast matrix-...
Comments