Onnxruntime Versions Save

ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator

v1.17.3

2 weeks ago

What's new?

General:

  • Update copying API header files to make Linux logic consistent with Windows (#19736) - @mszhanyi
  • Pin ONNX version to fix DML and Python packaging pipeline exceptions (#20073) - @mszhanyi

Build System & Packages:

  • Fix minimal build with training APIs enabled bug affecting Apple framework (#19858) - @edgchen1

Core:

  • Fix SplitToSequence op with string tensor bug (#19942) - @Craigacp

CUDA EP:

  • Fix onnxruntime_test_all build break with CUDA (#19673) - @gedoensmax
  • Fix broken pooling CUDA NHWC ops and ensure NCHW / NHWC parity (#19889) - @mtavenrath

TensorRT EP:

  • Fix TensorRT build break caused by image update (#19880) - @jywu-msft
  • Fix TensorRT custom op list concurrency bug (#20093) - @chilo-ms

Web:

  • Add hardSigmoid op support and hardSigmoid activation for fusedConv (#19215, #19233) - @qjia7
  • Add support for WebNN async API with Asyncify (#19415) - @Honry
  • Add uniform support for conv, conv transpose, conv grouped, and fp16 (#18753, #19098) - @axinging
  • Add capture and replay support for JS EP (#18989) - @fs-eire
  • Add LeakyRelu activation for fusedConv (#19369) - @qjia7
  • Add FastGelu custom op support (#19392) - @fs-eire
  • Allow uint8 tensors for WebGPU (#19545) - @satyajandhyala
  • Add and optimize MatMulNBits (#19852) - @satyajandhyala
  • Enable ort-web with any Float16Array polyfill (#19305) - @fs-eire
  • Allow multiple EPs to be specified in backend resolve logic (#19735) - @fs-eire
  • Various bug fixes: (#19258) - @gyagp, (#19201, #19554) - @hujiajie, (#19262, #19981) - @guschmue, (#19581, #19596, #19387) - @axinging, (#19613) - @satyajandhyala
  • Various improvements for performance and usability: (#19202) - @qjia7, (#18900, #19281, #18883) - @axinging, (#18788, #19737) - @satyajandhyala, (#19610) - @segevfiner, (#19614, #19702, #19677, #19857, #19940) - @fs-eire, (#19791) - @gyagp, (#19868) - @guschmue, (#19433) - @martholomew, (#19932) - @ibelem

Windows:

  • Fix Windows memory mapping bug affecting some larger models (#19623) - @yufenglee

Kernel Optimizations:

  • Fix GQA and Rotary Embedding bugs affecting some models (#19801, #19874) - @aciddelgado
  • Update replacement of MultiHeadAttention (MHA) and GroupQueryAttention (GQA) (#19882) - @kunal-vaishnavi
  • Add support for packed QKV input and Rotary Embedding with sm<80 using Memory Efficient Attention kernel (#20012) - @aciddelgado

Models:

  • Add support for benchmarking LLaMA model end-to-end performance (#19985, #20033, #20149) - @kunal-vaishnavi
  • Add example to demonstrate export of Open AI Whisper implementation with batched prompts (#19854) - @shubhambhokare1

This patch release also includes additional fixes by @spampana95 and @enximi. Big thank you to all our contributors!

v1.17.1

2 months ago

This patch release includes the following updates:

General

  • Update thread affinity on server so it is only set with auto affinity (#19318) - @ivberg

Build System and Packages

  • Fix bug that was breaking arm64 build by disabling __cpuid check on arm64 builds since intrinsic is not available (#19574) - @smk2007

Core

  • Add capturestate / rundown ETW support logging for session and provider options (#19397) - @ivberg
  • Restrict L2 cache core check on Intel devices (#19483) - @smk2007

Performance

  • Optimize KahnsTopologicalSort and PriorityNodeCompare to fix performance degradation in session creation time that was affecting many models (#19475) - @smk2007

EPs

  • Enable DirectML on Windows and CUDA on Linux for Node.js binding (#19274) - @jchen351

QNN

  • Fix split index bugs uncovered by QNN SDK 2.19 release (#19381) - @adrianlizarraga
  • Add job that builds x64 Python wheels for QNN EP so cached QNN models can be created on Windows x64 (#19499) - @adrianlizarraga

OpenVINO

  • Fix bugs for API backwards compatibility (#19482) - @preetha-intel

DirectML

  • Fix bug in external data packing that was causing crash (#19415) - @PatriceVignola
  • Fix bug in allocation planner by disabling streams for DML EP (#19481) - @PatriceVignola

Web

  • Fix bug with types export in package.json (#19458) - @fs-eire

Training

  • Reduce onnxruntime-training package size so it can be published on PyPI (#19486) - @baijumeswani
  • Update default std flag used during torch extensions compilation (#19516) - @baijumeswani
  • Add ATen fallback support for bicubic interpolation algorithm (#19380) - @prathikr

Quantization

  • Update Q/DQ quantization to ensure Microsoft opset (#19335) - @adrianlizarraga
  • Add contrib Q/DQ ops to symbolic shape inference tool (#19340) - @adrianlizarraga
  • Fix subgraph quantization regression (#19421) - @fxmarty
  • Add DefaultTensorType option to specify the default tensor type to quantize (#19455) - @yufenglee
  • Fix bug with command line argparse to process --symmetric [True|False] correctly (#19577) - @satyajandhyala

Whisper Model

  • Fix bug in BeamSearch implementation of Whisper model that was causing a crash in some scenarios (#19345) - @petermcaughan
  • Fix bug in Whisper model timestamps and temperature (#19509) - @kunal-vaishnavi

v1.17.0

3 months ago

Announcements

In the next release, we will totally drop support for Windows ARM32.

General

Build System and Packages

  • Dropped CentOS 7 support. All Linux binaries now require glibc version >=2.28, but users can still build the source code for a lower glibc version.
  • Added CUDA 12 packages for Python and Nuget.
  • Added Python 3.12 packages for ONNX Runtime Inference. ONNX Runtime Training Python 3.12 packages cannot be provided at this time since training packages depend on PyTorch, which does not support Python 3.12 yet.
  • Linux binaries (except those in AMD GPU packages) are built in a more secure way that is compliant with BinSkim's default policy (e.g., the binaries no longer have an executable stack).
  • Added support for Windows ARM64X for users who build ONNX Runtime from source. No prebuilt package provided yet.
  • Removed Windows ARM32 binaries from official packages. Users who still need these binaries can build them from source.
  • Added AMD GPU package with ROCm and MiGraphX (Python + Linux only).
  • Split ONNX Runtime GPU Nuget package into two packages.
  • When building the source code for Linux ARM64 or Android, the C/C++ compiler must support BFloat16. Support for Android NDK 24.x has been removed. Please use NDK 25.x or 26.x instead.
  • Link time code generation (LTCG or LTO) is now disabled by default when building from source. To re-enable it, users can add "--enable_lto" to the build command. All prebuilt binaries are still built with LTO.

Core

  • Optimized graph inlining.
  • Allow custom op to invoke internal thread-pool for parallelism.
  • Added support for supplying a custom logger at the session level.
  • Added new logging and tracing of session and execution provider options.
  • Added new dynamic ETW provider that can trace/diagnose ONNX internals while maintaining great performance.

Performance

  • Added 4bit quant support on NVIDIA GPU and ARM64.

EPs

TensorRT EP

  • Added support for direct load of precompiled TensorRT engines and customizable engine prefix.
  • Added Python support for TensorRT plugins via ORT custom ops.
  • Fixed concurrent Session::Run bugs.
  • Updated calls to deprecated TensorRT APIs (e.g., enqueue_v2 → enqueue_v3).
  • Fixed various memory leak bugs.

QNN EP

  • Added support for QNN SDK 2.18.
  • Added context binary caching and model initialization optimizations.
  • Added mixed precision (8/16 bit) quantization support.
  • Add device-level session options (soc_model, htp_arch, device_id), extreme_power_saver for htp_performance_mode, and vtcm_mb settings.
  • Fixed multi-threaded inference bug.
  • Fixed various other bugs and added performance improvements.
  • QNN profiling of the NPU can be enabled dynamically with ETW or write out to CSV.

OpenVINO EP

  • Added support for OpenVINO 2023.2.
  • Added AppendExecutionProvider_OpenVINO_V2 API for supporting new OpenVINO EP options.

DirectML EP

  • Updated to DirectML 1.13.1.
  • Updated operators LpPool-18 and AveragePool-19 with dilations.
  • Improved Python I/O binding support.
  • Added RotaryEmbedding.
  • Added support for fusing subgraphs into DirectML execution plans.
  • Added new Python API to choose a specific GPU on multi-GPU devices with the DirectML EP.

Mobile

  • Added initial support for 4bit quantization on ARM64.
  • Extended CoreML/NNAPI operator coverage.
  • Added support for YOLOv8 pose detection pre/post processing.
  • Added support for macOS in CocoaPods package.

Web

  • Added support for external data format.
  • Added support for I/O bindings.
  • Added support for training.
  • Added WebGPU optimizations.
  • Transitioned WebGPU out of experimental.
  • Added FP16 support for WebGPU.

Training

Large Model Training

  • Enabled support for QLoRA (with support for BFloat16).
  • Added symbolic shape support for Triton codegen (see PR).
  • Made improvements to recompute optimizer with easy ON/OFF to allow layer-wise recompute (see PR).
  • Enabled memory-efficient gradient management. For Mistral, we see ~10GB drop in memory consumption when this feature is ON (see PR).
  • Enabled embedding sparsity optimizations.
  • Added support for Aten efficient attention and Triton Flash Attention (see PR).
  • Packages now available for CUDA 11.8 and 12.1.

On Device Training

  • On-Device training will now support training on the web. This release focuses on federated learning and developer exploration scenarios. More features coming soon in future releases.

Extensions

  • Modified gen_processing_model tokenizer model to output int64, unifying output datatype of all tokenizers.
  • Implemented support for post-processing of YOLO v8 within the Python extensions package.
  • Introduced 'fairseq' flag to enhance compatibility with certain Hugging Face tokenizers.
  • Incorporated 'added_token' attribute into the BPE tokenizer to improve CodeGen tokenizer functionality.
  • Enhanced the SentencePiece tokenizer by integrating token indices into the output.
  • Added support for the custom operator implemented with CUDA kernels, including two example operators.
  • Added more tests on the Hugging Face tokenizer and fixed identified bugs.

Known Issues

  • The onnxruntime-training package is not yet available in PyPI but can be accessed in ADO as follows:
    python -m pip install cerberus flatbuffers h5py numpy>=1.16.6 onnx packaging protobuf sympy setuptools>=41.4.0
    pip install -i https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT/pypi/simple/ onnxruntime-training
    pip install torch-ort
    python -m torch_ort.configure
    
    Installation instructions can also be accessed here.
  • For models with int4 kernel only:
    • Crash may occur when int4 is applied on Intel CPUs with hybrid core if the E-cores are disabled in BIOS. Fix is in progress to be patched.
    • The "neural-speed" library used by int4 kernels has a bug that could lead to out-of-bounds memory read/write.
    • Performance regression on the int4 kernel on x64 makes the op following MatMulNBits much slower. Fix is in progress to be patched.
  • Current bug in BeamSearch implementation of T5, GPT, and Whisper may break models under heavy inference load using BeamSearch on CUDA. See #19345. Fix is in progress to be patched.
  • Full support of ONNX 1.15 opsets is still in progress. A list of new ONNX 1.15 opset support that has been included in this release can be found above in the 'General' section.
  • Some Cast nodes will not be removed (see https://github.com/microsoft/onnxruntime/pull/17953): Cast node from higher precision to lower precision (like fp32 to fp16) will be kept. If model result is different from ORT 1.16 and 1.17, check whether some Cast nodes was removed in 1.16 but kept in 1.17.
  • When running ONNX Runtime's python 3.12 package on Windows 11, you may see a warning like: “Unsupported Windows version (11). ONNX Runtime supports Windows 10 and above, only.” You may safely ignore it.

Contributions

Contributors to ONNX Runtime include members across teams at Microsoft, along with our community members: Changming Sun, Yulong Wang, Tianlei Wu, Yi Zhang, Jian Chen, Jiajia Qin, Adrian Lizarraga, Scott McKay, Wanming Lin, pengwa, Hector Li, Chi Lo, Dmitri Smirnov, Edward Chen, Xu Xing, satyajandhyala, Rachel Guo, PeixuanZuo, RandySheriffH, Xavier Dupré, Patrice Vignola, Baiju Meswani, Guenther Schmuelling, Jeff Bloomfield, Vincent Wang, cloudhan, zesongw, Arthur Islamov, Wei-Sheng Chin, Yifan Li, raoanag, Caroline Zhu, Sheil Kumar, Ashwini Khade, liqun Fu, xhcao, aciddelgado, kunal-vaishnavi, Aditya Goel, Hariharan Seshadri, Ye Wang, Adam Pocock, Chen Fu, Jambay Kinley, Kaz Nishimura, Maximilian Müller, Yang Gu, guyang3532, mindest, Abhishek Jindal, Justin Chu, Numfor Tiapo, Prathik Rao, Yufeng Li, cao lei, snadampal, sophies927, BoarQing, Bowen Bao, George Wu, Jiajie Hu, MistEO, Nat Kershaw (MSFT), Sumit Agarwal, Ted Themistokleous, ivberg, zhijiang, Christian Larson, Frank Dong, Jeff Daily, Nicolò Lucchesi, Pranav Sharma, Preetha Veeramalai, Cheng Tang, Xiang Zhang, junchao-loongson, petermcaughan, rui-ren, shaahji, simonjub, trajep, Adam Louly, Akshay Sonawane, Artem Shilkin, Atanas Dimitrov, AtanasDimitrovQC, BODAPATIMAHESH, Bart Verhagen, Ben Niu, Benedikt Hilmes Brian Lambert, David Justice, Deoksang Kim, Ella Charlaix, Emmanuel Ferdman, Faith Xu, Frank Baele, George Nash, hans00, computerscienceiscool, Jake Mathern, James Baker, Jiangzhuo, Kevin Chen, Lennart Hannink, Lukas Berbuer, Mike Guo, Milos Puzovic, Mustafa Ateş Uzun, Peishen Yan, Ran Gal, Ryan Hill, Steven Roussey, Suryaprakash Shanmugam, Vadym Stupakov, Yiming Hu, Yueqing Zhang, Yvonne Chen, Zhang Lei, Zhipeng Han, aimilefth, gunandrose4u, kailums, kushalpatil07, kyoshisuki, luoyu-intel, moyo1997, tbqh, weischan-quic, wejoncy, winskuo-quic, wirthual, yuwenzho

v1.16.3

5 months ago

What's Changed

  1. Stable Diffusion XL demo update by @tianleiwu in https://github.com/microsoft/onnxruntime/pull/18496
  2. Fixed a memory leak issue(#18466) in TensorRT EP by @chilo-ms in https://github.com/microsoft/onnxruntime/pull/18467
  3. Fix a use-after-free bug in SaveInputOutputNamesToNodeMapping function by @snnn in https://github.com/microsoft/onnxruntime/pull/18456 . The issue was found by AddressSanitizer.

v1.16.2

5 months ago

The patch release includes updates on:

  • Performance optimizations for Llama2 on CUDA EP and DirectML EP
  • Performance optimizations for Stable Diffusion XL model for CUDA EP
    • Demos for text to image generation
  • Mobile bug fixes for crash on some older 64-bit ARM devices and AOT inlining issue on iOS with C# bindings
  • TensorRT EP bug fixes for user provided compute stream and stream synchronization

v1.16.1

6 months ago

Patch release for 1.16

  • Fix type of weights and activations in the ONNX quantizer
  • Fix quantization bug in historic quantizer #17619
  • Enable session option access in nodejs API
  • Update nodejs to v18
  • Align ONNX Runtime extensions inclusion in source and build
  • Limit per thread context to 1 in the TensorRT EP to avoid error caused by input shape changes

v1.16.0

7 months ago

General

  • Support for serialization of models >=2GB

APIs

  • New session option to disable default CPU EP fallback session.disable_cpu_ep_fallback
  • Java
    • Support for fp16 and bf16 tensors as inputs and outputs, along with utilities to convert between these and fp32 data. On JDK 20 and newer the fp16 conversion methods use the JDK's Float.float16ToFloat and Float.floatToFloat16 methods which can be hardware accelerated and vectorized on some platforms.
    • Support for external initializers so that large models that can be instantiated without filesystem access
  • C#
    • Expose OrtValue API as the new preferred API to run inference in C#. This reduces garbage and exposes direct native memory access via Slice like interfaces.
    • Make Float16 and BFloat16 full featured fp16 interfaces that support conversion and expose floating properties (e.g. IsNaN, IsInfinity, etc)
  • C++
    • Make Float16_t and BFloat16_t full featured fp16 interfaces that support conversion and expose floating properties (e.g. IsNaN, IsInfinity, etc)

Performance

  • Improve LLM quantization accuracy with smoothquant
  • Support 4-bit quantization on CPU
  • Optimize BeamScore to improve BeamSearch performance
  • Add FlashAttention v2 support for Attention, MultiHeadAttention and PackedMultiHeadAttention ops

Execution Providers

  • CUDA EP
    • Initial fp8 support (QDQ, Cast, MatMul)
    • Relax CUDA Graph constraints to allow more models to utilize
    • Allow CUDA allocator to be registered with ONNX Runtime externally
    • Fixed a build issue with CUDA 12.2 (#16713)
  • TensorRT EP
    • CUDA Graph support
    • Support user provided cuda compute stream
    • Misc bug fixes and improvements
  • OpenVINO EP
    • Support OpenVINO 2023.1
  • QNN EP
    • Enable context binary cache to reduce initialization time
    • Support QNN 2.12
    • Support for resize with asymmetric transformation mode on HTP backend
    • Ops support: Equal, Less, LessOrEqual, Greater, GreaterOrEqual, LayerNorm, Asin, Sign, DepthToSpace, SpaceToDepth
    • Support 1D Conv/ConvTranspose
    • Misc bug fixes and improvements

Mobile

  • Initial support for Azure EP
  • Dynamic shape support for CoreML
  • Improve React Native performance with JSI
  • Mobile support for CLIPImageProcessor pre-processing and CLIP scenario
  • Swift Package Manager support for ONNX Runtime inference and ONNX Runtime extensions via onnxruntime-swift-package-manager

Web

  • webgpu ops coverage improvements (SAM, T5, Whisper)
  • webnn ops coverage improvements (SAM, Stable Diffusion)
  • Stability/usability improvements for webgpu

Large model training

  • ORTModule + OpenAI Triton Integration now available. See details here
  • Label Sparsity compute optimization support complete and enabled by default starting release 1.16
  • New experimental embedding sparsity related optimizations available (disabled by default).
    • Improves training performance of Roberta in Transformers by 20-30%
  • Other compute optimizations like Gather/Slice/Reshape upstream support enabled.
  • Optimizations for LLaMAv2 (~10% acceleration) and OpenAI Whisper
  • Improvements to logging and metrics (initialization overhead, memory usage, statistics convergence tool, etc) system improvements.
  • PythonOp enhancement: bool and tuple[bool] constants, materialize grads, empty inputs, save in context, customized shape inference, use full qualified name for export.
  • SCELossInternal/SCELossGradInternal CUDA kernels can handle elements more than std::numeric_limits<int32_t>::max.
  • Improvements to LayerNorm fusion
  • Model cache for exported onnx model is introduced to avoid repeatedly exporting a model that is not changed across.

On-Device Training

  • iOS support available starting this release
  • Minimal build now available for On-Device Training. Basic binary size ~1.5 MB
  • ORT-Extensions custom op support enabled through onnxblock for on-device training scenarios

ORT Extensions

This ORT release is accompanied by updates to onnxruntime-extensions. Features include:

  • New Python API gen_processing_models to export ONNX data processing model from Huggingface Tokenizers such as LLaMA , CLIP, XLM-Roberta, Falcon, BERT, etc.
  • New TrieTokenizer operator for RWKV-like LLM models, and other tokenizer operator enhancements.
  • New operators for Azure EP compatibility: AzureAudioToText, AzureTextToText, AzureTritonInvoker for Python and NuGet packages.
  • Processing operators have been migrated to the new Lite Custom Op API

Known Issues

  • ORT CPU Python package requires execution provider to be explicitly provided. See #17631. Fix is in progress to be patched.

Contributions

Contributors to ONNX Runtime include members across teams at Microsoft, along with our community members: fs-eire, edgchen1, snnn, pengwa, mszhanyi, PeixuanZuo, tianleiwu, adrianlizarraga, baijumeswani, cloudhan, satyajandhyala, yuslepukhin, RandyShuai, RandySheriffH, skottmckay, Honry, dependabot[bot], HectorSVC, jchen351, chilo-ms, YUNQIUGUO, justinchuby, PatriceVignola, guschmue, yf711, Craigacp, smk2007, RyanUnderhill, jslhcl, wschin, kunal-vaishnavi, mindest, xadupre, fdwr, hariharans29, AdamLouly, wejoncy, chenfucn, pranavsharma, yufenglee, zhijxu-MS, jeffdaily, natke, jeffbloo, liqunfu, wangyems, er3x3, nums11, yihonglyu, sumitsays, zhanghuanrong, askhade, wenbingl, jingyanwangms, ashari4, gramalingam, georgen117, sfatimar, BowenBao, hanbitmyths, stevenlix, jywu-msft

v1.15.1

10 months ago

This release fixed the following issues:

  1. A coding problem in test/shared_lib/test_inference.cc that it should use ASSERT_NEAR to test float values instead of ASSERT_EQ. Without this change, some DNNL/OpenVino tests would fail on some AMD CPUs.
  2. A misaligned error in cublasGemmBatchedHelper function. The error only occurs when CUDA version = 11.8 and the GPU's CUDA Compute capability >=80. (In other words: with TensorFloat-32 support) (#15981)
  3. A build issue that build with onnxruntime_ENABLE_MEMORY_PROFILE was broken in 1.15.0 release. (#16124)
  4. Native onnxruntime library not loading in Azure App Service. It is because in 1.15.0 we introduced a Windows API call to SetThreadDescription. Though the API is available in all Windows 10 versions, some sandbox environments block using the API. (#15375)
  5. An alignment problem for xnnpack EP on Intel/AMD CPUs on PC platforms.
  6. Some training header files were missing in the 1.15.0 training nuget package.
  7. Some fields in OrtCUDAProviderOptionsV2 struct are not initialized
  8. The *.dylib files in ONNX Runtime nuget package are not signed. (#16168)

Known issue

  1. Segfaults when loading model with local functions, works fine if model is inlined by ONNX (#16170)
  2. Cross building for iOS requires manually downloading protoc (#16238)

v1.15.0

11 months ago

Announcements

Starting from the next release(ONNX Runtime 1.16.0), at operating system level we will drop the support for

  • iOS 11 and below. iOS 12 will be the minimum supported version.
  • CentOS 7, Ubuntu 18.04, and any Linux distro without glibc version >=2.28.

At compiler level we will drop the support for

  • GCC version <= 9
  • Visual Studio 2019

Also, we will remove the onnxruntime_DISABLE_ABSEIL build option since we will upgrade protobuf and the new protobuf version will need abseil.

General

  • Added support for ONNX Optional type in C# API
  • Added collectives to support multi-GPU inferencing
  • Updated macOS build machines to macOS-12, which comes with Xcode 14.2 and we should stop using Xcode 12.4
  • Added Python 3.11 support (deprecate 3.7, support 3.8-3.11) in packages for Onnxruntime CPU, Onnxruntime-GPU, Onnxruntime-directml, and onnxruntime-training.
  • Updated to CUDA 11.8. ONNX Runtime source code is still compatible with CUDA 11.4 and 12.x.
  • Dropped the support for Windows 8.1 and below
  • Eager mode code and onnxruntime_ENABLE_EAGER_MODE cmake option are deleted.
  • Upgraded Mimalloc version from 2.0.3 to 2.1.1
  • Upgraded protobuf version from 3.18.3 to 21.12
  • New dependency: cutlass, which is only used in CUDA/TensorRT packages.
  • Upgraded DNNL from 2.7.1 to 3.0

Build System

  • On POSIX systems by default we disallow using "root" user to build the code. If needed, you can append "--allow_running_as_root" to your build command to bypass the check.
  • Add the support for building the source natively on Windows ARM64 with Visual Studio 2022.
  • Added a Gradle wrapper and updated Gradle version from 6.8.3 to 8.0.1. (Gradle is the tool for building ORT Java package)
  • When doing cross-compiling, the build scripts will try to download a prebuit protoc from Github instead of building the binary from source. Because now protobuf has many dependencies. It is not easy to setup a build environment for protobuf.

Performance

Execution Providers

Two new execution providers: JS EP and QNN EP.

TensorRT EP

  • Official support for TensorRT 8.6
  • Explicit shape profile overrides
  • Support for TensorRT plugins via ORT custom op
  • Improve support for TensorRT options (heuristics, sparsity, optimization level, auxiliary stream, tactic source selection etc.)
  • Support for TensorRT timing cache
  • Improvements to our test coverage, specifically for opset16-17 models and package pipeline unit test coverage.
  • Other misc bugfixes and improvements.

OpenVINO EP

  • Support for OpenVINO 2023.0
  • Dynamic shapes support for iGPU
  • Changes to OpenVINO backend to improve first inference latency
  • Deprecation of HDDL-VADM and Myriad VPU support
  • Misc bug fixes.

QNN EP

DirectML EP:

AzureEP

  • Added support for OpenAI whisper model
  • Available in a Nuget pkg in addition to Python

Mobile

New packages

  • Swift Package Manager for onnxruntime
  • Nuget package for onnxruntime-extensions (supports Android/iOS for MAUI/Xamarin)
  • React Native package for onnxruntime can optionally include onnxruntime-extensions

Pre/Post processing

  • Added support for built-in pre and post processing for NLP scenarios: classification, question-answering, text-prediction

  • Added support for built-in pre and post processing for Speech Recognition (Whisper)

  • Added support for built-in post processing for Object Detection (YOLO). Non-max suppression, draw bounding boxes

  • Additional CoreML and NNAPI kernels to support customer scenarios

    • NNAPI: BatchNormalization, LRN
    • CoreML: Div, Flatten, LeakyRelu, LRN, Mul, Pad, Pow, Sub

Web

  • [preview] WebGPU support
  • Support building the source code with "MinGW make" on Windows.

ORT Training

On-device training:

  • Official package for On-Device Training now available. On-device training extends ORT Inference solutions to enable training on edge devices.
  • APIs and Language bindings supported for C, C++, Python, C#, Java.
  • Packages available for Desktop and Android.
  • For custom builds refer build instructions.

Others

  • Added graph optimizations which leverage the sparsity in the label data to improve performance. With these optimizations we see performance gains ranging from 4% to 15% for popular HF models over baseline ORT.
  • Vision transformer models like ViT, BEIT and SwinV2 see upto 44% speedup with ORT Training+ DeepSpeed over PyTorch eager mode on AzureML.
  • Added optimizations for SOTA models like Dolly and Whisper. ORT Training + DS now gives ~17% speedup for Whisper and ~4% speedup for Dolly over PyTorch eager mode. Dolly optimizations on main branch show a ~40% over eager mode.

Known Issues

  • The onnxruntime-training 1.15.0 packages published to pypi.org were actually built in Debug mode instead of Release mode. You can get the right one from https://download.onnxruntime.ai/ . We will fix the issue in the next patch release.
  • XNNPack EP does not work on x86 CPUs without AVX-512 instructions, because we used wrong alignment when allocating buffers for XNNPack to use.
  • The CUDA EP source code has a build error when CUDA version <11.6. See #16000.
  • The onnxruntime-training builds are missing the training header files.

Contributions

Contributors to ONNX Runtime include members across teams at Microsoft, along with our community members: snnn, fs-eire, edgchen1, wejoncy, mszhanyi, PeixuanZuo, pengwa, jchen351, cloudhan, tianleiwu, PatriceVignola, wangyems, adrianlizarraga, chenfucn, HectorSVC, baijumeswani, justinchuby, skottmckay, yuslepukhin, RandyShuai, RandySheriffH, natke, YUNQIUGUO, smk2007, jslhcl, chilo-ms, yufenglee, RyanUnderhill, hariharans29, zhanghuanrong, askhade, wschin, jywu-msft, mindest, zhijxu-MS, dependabot[bot], xadupre, liqunfu, nums11, gramalingam, Craigacp, fdwr, shalvamist, jstoecker, yihonglyu, sumitsays, stevenlix, iK1D, pranavsharma, georgen117, sfatimar, MaajidKhan, satyajandhyala, faxu, jcwchen, hanbitmyths, jeffbloo, souptc, ytaous kunal-vaishnavi

v1.14.1

1 year ago

This patch addresses packaging issues and bug fixes on top of v1.14.0:

  • Mac OS Python build for x86 arch (issue: #14663)
  • DirectML EP fixes: sequence ops (#14442), package naming to remove -dev suffix
  • CUDA12 build compatibility (#14659)
  • Performance regression fixes: IOBinding input (#14719), Transformer models (#14732, #14517, #14699)
  • ORT Training kernel fix (#14727)

Only select packages were published for this patch release; others can be found in the attachments below: