I’m thrilled to see how far oneAPI has progressed since we started on this journey in 2019. Various elements have already been adopted by the community: oneDNN usage in Fugaku – world’s fastest supercomputer today, Huawei porting DPC++ to support their Ascend AI chips, hipSYCL pushing forward with DPC++ support for AMD, and DPC++ support for NVidia GPUs through the open-source project.
Today, I’m happy to announce the release of rev 1 of the oneAPI 1.1 provisional spec which kick-starts the next phase of oneAPI’s evolution.
We released oneAPI spec 1.0 in November 2020 to establish an open programming model – including a language, a hardware abstraction layer, and libraries for many domains. Together, these deliver performance, productivity, and portability across diverse architectures. With provisional spec 1.1, we’re adding functionality that enables new use cases in AI, Rendering, and Media.
- Advanced Ray Tracing: We’re adding a new element to the specification that enables software developers to code for high-fidelity raytraced computations across multiple vendors’ systems and accelerators. Domains include geometric ray tracing computations, volumetric computation and rendering, image denoising, and scalable rendering and visualization infrastructure.
- oneAPI Deep Neural Network Library: oneDNN extends its scope by adding a graph API which compiles and executes a deep learning computation graph, finding opportunities for fusing operators and other target-specific optimizations.
- oneAPI Video Processing Library: oneVPL adds Hyper encode mode that allows for more efficient split of workloads between available media components to increase overall performance.
In parallel, we continue to advance the language.
- Data Parallel C++ (DPC++) and oneDPL: The DPC++ language extensions make up the majority of new features included in the SYCL 2020 final specification (released Feb 2021). This stays true to our goal of using DPC++ as a fast-iterating language spec prototype that drives change in SYCL and, ultimately, ISO C++. With much community input, DPC++ has progressed significantly to deliver new capabilities that accelerate heterogeneous programming: from unified shared memory and modern atomics to reductions, as well as interface improvements for accessors and class template arguments. All of these combined result in greater simplicity for the language, making it easier to adopt & use.
The above is just a slice of what’s included in the 1.1 provisional spec. Its development was led by community contributions of academic & industry leaders and is now available for public review at www.oneapi.com.
As a sneak peek:
- We have an upcoming update to our Level Zero specification by end of May. It’s expected to add extended subgroups, new scheduling hints, more kernel properties, and improved timestamp queries to better understand load balance. New features for media include more image formats and properties.
We look forward to your feedback!