This is a release candidate for oneDNN v2.4. Please provide feedback and submit defect reports via [Github issues](https://github.com/oneapi-src/oneDNN/issues/new/choose).
Performance Optimizations
* Improved primitive cache performance for Intel Graphics products.
* Intel Architecture Processors
* Improved performance for future Intel Xeon Scalable processor (code name Sapphire Rapids). The functionality is disabled by default and should be enabled via [CPU dispatcher control](https://oneapi-src.github.io/oneDNN/dev_guide_cpu_dispatcher_control.html).
* Improved binary primitive performance for cases when one of the tensors is broadcasted.
* Improved reorder primitive performance for memory formats with padding and/or zero points.
* Intel Graphics Products
* Introduced initial optimizations for future Intel Arc graphics (code name Alchemist and DG2).
* AArch64-based Processors
* Improved inner product and eltwise primitives performance with ACL.
* Introduced support for sum and for indirect and Winograd convolution implementations with ACL.
* NVIDIA Graphics
* Improved convolution performance with eltwise post-op.
Functionality
* Introduced [PReLU post-op](https://oneapi-src.github.io/oneDNN/dev_guide_attributes_post_ops.html) support in convolution and matmul.
* Extended maximum allowed post-ops chain for compute primitives (convolution, deconvolution, inner product, and matmul) to 32.
* Introduced support for zero points in sum post-op for convolution and matmul. The functionality is implemented only for CPUs.
* Extended binary primitive with support for mixed data types for input tensors. The functionality is implemented only for CPUs.
* Extended sum post-op for convolution and matmul primitives with support for mixed data types. The functionality is implemented only for CPUs.
* Added USM support for OpenCL GPU runtime.
Usability
* Added compile time options to manage the set of supported primitives and workload types. See DNNL_ENABLE_WORKLOAD and DNNL_ENABLE_PRIMITIVE in [build options](https://oneapi-src.github.io/oneDNN/dev_guide_build_options.html) for more details. This feature allows to reduce binary footprint of the library for specialized applications.
* Reduced overall library size by trimming down use of templates, OpenCL headers, and TBB headers. The configurations that benefitted the most are CPU only configuration with TBB threading and GPU only configuration. Note, that binary footprint depends on the compiler used to build the library and build options.
* Introduced [floating point math mode API]( https://oneapi-src.github.io/oneDNN/dev_guide_attributes_fpmath_mode.html#doxid-dev-guide-attributes-fpmath-mode). The API allows the library to use bfloat16 or float16 hardware acceleration in fp32 operations. Currently this mode is not supported in the implementation.
* Added a build option DNNL_LIBRARY_NAME to change the library name and CMake target. This feature helps projects that use multiple oneDNN configurations.
Breaking Changes
* Updated minimal supported ACL version from 21.08 (was 21.05).
Deprecated functionality
* Intel MKL-DNN compatibility API is deprecated and will be removed in the next update. See [Transition from Intel MKL-DNN to oneDNN](https://oneapi-src.github.io/oneDNN/dev_guide_transition_to_dnnl.html) page for instructions on moving to new API.
Thanks to the Contributors
This release contains contributions from the project core team as well as
Aleksandr Nikolaev alenik01, Arthur Mitrano aaraujom, Diana Bite diaena, Jing Xu jingxu10, Kentaro Kawakami kawakami-k, Kevin Putnam intelkevinputnam, MITSUNARI Shigeo herumi, Nathan John Sircombe nSircombe, Nicolas Chauvet (kwizart) kwizart, Peter Caday petercad. We would also like to thank everyone who asked questions and reported issues.
graph-v0.2
This is a technical preview for oneDNN Graph API based on [oneDNN v2.3.2](https://github.com/oneapi-src/oneDNN/releases/tag/v2.3.2).
oneDNN Graph API extends oneDNN with a unified, high-level graph API for multiple AI hardware classes (CPU, GPU, accelerators). The graph interface integrates with the deep learning frameworks and inference engines to maximize opportunities for performance optimizations across a variety of hardware targets. This preview has full support for the oneAPI Graph programming model and partial support of the operations in [oneDNN Graph API specification v0.7](https://spec.oneapi.io/onednn-graph/latest/introduction.html).
Learn more about oneDNN Graph API:
* [Introduction to oneDNN Graph API](https://github.com/oneapi-src/oneDNN/blob/dev-graph-preview2/doc/README.md)
* [Getting started with C++ API](https://github.com/oneapi-src/oneDNN/blob/dev-graph-preview2/doc/cpu_get_started.md)
* [Getting started with DPC++ API](https://github.com/oneapi-src/oneDNN/blob/dev-graph-preview2/doc/sycl_get_started.md)
Supported Functionality
* C++ and DPC++ API.
* Graph partition and compilation API.
* Operations and fusions targeting fp32 inference for CNNs, MLPs, and transformer neural networks.
Performance Optimizations
Backend implementation relies on oneDNN and includes performance optimizations for Intel Architecture processors with Intel SSE4.1, Intel AVX, Intel AVX2, or Intel AVX512 instruction set.
Validation
* [Gtest suite](https://github.com/oneapi-src/oneDNN/tree/dev-graph-preview2/tests) is available for basic functional testing.
* Comprehensive functional and performance validation is covered by the extended version of [benchdnn](https://github.com/oneapi-src/oneDNN/tree/dev-graph-preview2/tests/benchdnn).
Known Issues and Limitations
* Some subgraphs might not be recognized as a partition even if it matches the general pattern description due to internal implementation.
* The weight’s opaque layout can be queried only from a compiled partition, which requires that tensor shapes must be known at compilation time.
* Binary operation with scalar and tensor inputs is not optimized.
Thanks to the Contributors
This release contains contributions from the project core teams as well as Jiong Gong, Pinzhen Xu, Chunyuan Wu, Jianping Chen, Scott Cyphers, Nishant Patel, Yiqiang Li, Yang Sheng, Kiefer Kuah, Adam Straw, Tim Zerrell, Namrata Choudhury and others.