SYCL Roundup: News and Events About the Latest SYCL Specifications
The developer world has been abuzz lately about recent developments and events surrounding SYCLTM—Khronos® Group’s standard programming model. Here, we will highlight recent events where SYCL was front and center, take a look at favorite new features in the SYCL 2020 spec, and more.
The What and Why of SYCL and Its Importance to oneAPITM
SYCL is a royalty-free, cross-platform programming model that enables code for heterogeneous processors to be written using a single-source embedded domain-specific language (eDSL) based on standard ISO C++, with the host and kernel code for an application contained in the same source file. The latest version is SYCL 2020, which was published in November 2021. The main objectives of this version are support for C++17 and OpenCL 3.0.
oneAPI is a unified programming model that simplifies development across multiple architectures, such as CPUs, GPUs, FPGAs and accelerators. DPC++ is the primary language for oneAPI and incorporates SYCL to support data parallelism and heterogeneous programming for performance across CPUs and accelerators, which enables code reuse across hardware targets while allowing for tuning to specific accelerators.
The oneAPI DPC++ Library (oneDPL) serves to enhance SYCL by providing STL-like capabilities for programming accelerators, while the oneAPI Math Kernel Library (oneMKL) enables high-performance math for science, engineering, and financial applications, including BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math. Open source oneMKL provides a common SYCL-based interface that lets you integrate low-level proprietary and open-source libraries.
oneAPI DevSummit at IWOCL 2022 Highlights
During this two-day virtual conference, attendees heard from industry leaders and academics working on innovative cross-platform, multi-vendor architecture solutions using oneAPI and SYCL.
Parallel Programming Models and SYCL in the UK’s Exascale Programs
The UK is investing heavily in its exascale program, ExCALIBUR, where developers are focused on getting codes and algorithms ready for Exascale architectures.This is where approaches like SYCL and oneAPI come in because as open industry standards, they enable flexible integration and deployment of multiple acceleration technologies to support heterogenous compute. In his presentation, Simon McIntosh-Smith, Professor of HPC at the University of Bristol, examined how parallel C++ models such as SYCL are being evaluated and adopted.
oneAPI SYCL Essentials
At the closing presentation, developer evangelists Benjamin Odom and Praveen Kundurthy addressed the main programming challenges for multiple architectures, as well as the benefits of oneAPI’s implementation of SYCL, which include:
- C++ productivity benefits and familiar constructs
- Incorporation of the SYCL standard for data parallelism and heterogeneous programming
- Enhanced productivity due to reduced verbosity and programmer burden
- More programmer control over program execution
- Enablement of hardware-specific features
- Host code and heterogeneous accelerator kernels that can be mixed in the same source files
- Library constructs that add functionality
Other Sessions Included:
- Professor and research scientist Sameer Shende discussed the TAU Performance System® — a versatile profiling and tracing toolkit included in the Extreme-Scale Scientific Software Stack(E4S) — and how it supports performance evaluation of HPC and AI/ML applications running on Intel CPUs and GPUs using Intel oneAPI.
- Developer Yu-Hsiang Mike Tsai gave a talk addressing the challenges and solutions with porting functionality on the platform-portable sparse linear algebra library, Gingko.
- A group of developers and data scientists spoke about the growth in adoption of RISC-V by an increasing number of companies, which coincides with current demand from software developers for processors that can help them deploy cutting edge AI and HPC applications.
The DevSummit sessions are available on demand at oneAPI.io
Five Outstanding Additions Found in SYCL 2020
In April’s edition of Parallel Universe—Intel’s quarterly software development magazine—Intel engineers James Broadman and John Pennycook published their picks of exciting new features added to SYCL in the SYCL 2020 specification.
Here are their picks:
- Backends
By adding support for diverse acceleration API back-ends in addition to OpenCL, SYCL 2020 allows for implementations to be built on diverse languages and frameworks. Although implementations can still be built on OpenCL, support for generic backends enables SYCL to target more heterogeneous APIs and hardware. SYCL implementations are available from an increasing number of vendors, which makes it vendor independent and a single-source standard for C++ applications. Support for diverse acceleration API back-ends enables developers to utilize multiple platforms using the same code.
- Unified Shared Memory
Unified Shared Memory (USM) provides a mechanism for explicit data allocation and movement, which enables the use of pointer-based algorithms and data structures on heterogeneous devices, and allows for increased re-use of code across host and device. This mechanism serves as an alternative to the buffer/accessor model from SYCL 1.2.1. Programming with USM provides one unified address space across host and device; therefore, pointers to USM allocations are consistent across devices and can be directly passed to kernels as arguments. This streamlines the porting of existing pointer-based C++ and CUDA code to SYCL. It also enables shared allocations that migrate automatically across devices, which improve programmer productivity and provide compatibility with C++ containers and C++ algorithms. The three different USM allocations give programmers more control over data movement.
- Reductions
SYCL 2020 speeds-up reductions, a common programming pattern, through a “built-in” library. The group library provides abstractions for cooperative work items, resulting in additional application performance and programmer productivity aligned with underlying vendor-independent hardware capabilities. This acceleration of reductions simplifies the expression of variables with reduction semantics in SYCL kernels. It also enables implementations to employ compile-time specialization of reduction algorithms, which facilitate high-performance on various devices from multiple vendors.
- Group Library
To expand on the work-group abstraction from its previous version, SYCL 2020 now has a new sub-group abstraction and a library of group-based algorithms. It also has a selection of group-based algorithms based on the C++17 algorithms. Each algorithm is supported at different scopes, enabling SYCL implementations to provide highly tuned, cooperative versions of these functions using workgroup and/or sub-group parallelism. The group library in SYCL 2020 lays the groundwork for more group types and a wider range of group-based algorithms.
- Atomic References
C++20 was a major improvement with its atomics, enabling wrap types in an atomic reference. SYCL 2020 utilizes and broadens this design with support for address spaces and memory scopes, which results in an atomic reference implementation ready for heterogeneous computing and the complex memory hierarchies that come with it. SYCL provides a varied formation of different, vendor-independent device capabilities.
For a more detailed description of these five new features, we encourage readers to review the April 2022 edition of Parallel Universe.
Khronos Group Asks for Participation in New Exploratory Forum for Safety-Critical Industries
The Khronos Group announced a call for participation in the new SYCL Safety-Critical Exploratory Forum to help develop new safety standards within Khronos that adhere to safety-critical guidelines for the automotive, avionics, medical, and industrial industries. The forum is free and open to all who are interested in participating, including non-Khronos members.
The Khronos Safety-Critical Advisory Forum (KSCAF) has expressed a need for a high-level abstraction API that leverages the widely adopted SYCL standard for safety-critical heterogeneous computing.
The charter of the forum is to create a consensus around use cases and requirements for a unified parallel programming interface for C++. The API would be designed to reduce development and certification costs in safety-critical markets where using SYCL could improve programming productivity. If the exploratory forum reaches a significant consensus, then Khronos will work to initiate a formal working group to develop SYCL safety-critical specifications.
oneAPI DevSummit Southeast Asia
This will be a live virtual conference focused on oneAPI, SYCL, and AI for accelerated computing across xPU architectures (CPU, GPU, FPGA, and other accelerators).
Tech talks and Lightning talks will be hosted by industry leaders and academics from IIT Dharwad, Durham University, L&T Technology Services, Codeplay Software and BittWare. The event will offer participants opportunities to:
- Discover and demystify the latest technologies, tools, trends, and techniques alongside renowned experts from around the world
- Learn Intel AI tools for end-to-end development—data preparation, training, inference, deployment, and scaling
- Get best practices for accelerating application performance across multiple architectures
- Expand skills during hands-on workshops
The conference takes place September 15, 2022. Register here .
The continuing developments in SYCL and oneAPI, as well as the ongoing events and calls for participation from the developer community in special projects all contribute to the development of progressively better computation resources for programmers and data scientists, such as improved portability, performance, productivity, familiar development tools, verified libraries and frameworks, benchmarks and, perhaps most important, vendor independence.
This monumental shift toward open standards software and heterogenous computing will bring about innovations from machine learning and artificial intelligence to the medical and industrial sectors that will usher in a much brighter, technological future for humans to inhabit.
Get Involved and Review the oneAPI Specification
Learn about the latest oneAPI updates, industry initiatives and news. Check out our videos and podcasts. Visit our GitHub repo to review the spec and give feedback. Or join the conversation happening now on our Discord channel. Then get inspired, network with peers and participate in oneAPI events.