Skip to content

v2.0.0-rc.12

Latest

Choose a tag to compare

@decahedron1 decahedron1 released this 05 Mar 05:41
f085e4c

2.0.0-rc.12

💖 If you find ort useful, please consider sponsoring us on Open Collective 💖

🤔 Need help upgrading? Ask questions in GitHub Discussions or in the pyke.io Discord server!


This release was made possible by Rime.ai!

Rime.ai
Authentic AI voice models for enterprise.


📍 Multiversioning

🚨 If you used ort with default-features = false, enable the api-24 feature to use the latest features.

The big highlight of this release is multiversioning: ort can now use any minor version of ONNX Runtime from v1.17 to v1.24. New features are gated behind api-* feature flags, like api-20 or api-24. These flags will set the minimum version of ONNX Runtime required by ort.

More info 👉 https://ort.pyke.io/setup/multiversion

(docs still cooking, please be patient!)

🪄 Automatic device selection

With ONNX Runtime 1.22 or later, ort will now automatically use an NPU if one is available for maximum efficiency & power savings! Setting your own execution providers will override this.

This is thanks to the super cool new SessionBuilder::with_auto_device API! There's also SessionBuilder::with_devices for finer control.

👁️ CUDA 13

ort now ships builds for both CUDA 12 & CUDA 13! It should automatically detect which CUDA you're using, but if it gets it wrong, you can override it by setting the ORT_CUDA_VERSION environment variable to 12 or 13.

🩹 SessionBuilder error recovery

You can now recover from errors when building a session by calling .recover() on the error type to get the SessionBuilder back.

🛡️ Build attestations

Prebuilt binaries are now attested via GitHub Actions, so you can verify that they are untampered builds of ONNX Runtime coming straight from pyke.io.

To verify, download your binary package of choice and use the gh CLI to verify:

➜  gh attestation verify --owner pykeio ./x86_64-pc-windows-msvc+cu13.tar.lzma2
Loaded digest sha256:e96616510082108be228ad6ea026246a31650b7d446b330c6b9671fcb9ae6267 for file://./x86_64-pc-windows-msvc+cu13.tar.lzma2
Loaded 1 attestation from GitHub API

The following policy criteria will be enforced:
- OIDC Issuer must match:................... https://token.actions.githubusercontent.com
- Source Repository Owner URI must match:... https://github.com/pykeio
- Predicate type must match:................ https://slsa.dev/provenance/v1
- Subject Alternative Name must match regex: (?i)^https://github.com/pykeio/

✓ Verification succeeded!

sha256:e96616510082108be228ad6ea026246a31650b7d446b330c6b9671fcb9ae6267 was attested by:
REPO                  PREDICATE_TYPE                  WORKFLOW
pykeio/ort-artifacts  https://slsa.dev/provenance/v1  .github/workflows/build-runner.yml@refs/heads/main

(Also note that the SHA-256 hash lines up with the one defined in dist.txt.)


Moving stuff around

  • The ORT_LIB_LOCATION environment variable has been renamed to ORT_LIB_PATH.
    • Same with all other env vars ending in _LOCATION.
    • The old names will continue to work, but they won't make it into v2.0.0, so it's a good idea to change them now!
  • Everything that used to be in ort::tensor is now in ort::value, because why have a tensor module if the Tensor<T> type actually comes from the value module?
  • IoBinding and Adapter were moved from their own modules into ort::session. All sub-modules of ort::session besides builder were collapsed into ort::session.
  • All sub-modules of ort::operator were collapsed into ort::operator.
  • Session option changes:
    • with_denormal_as_zero -> with_flush_to_zero
    • with_device_allocator_for_initializers -> with_device_allocated_initializers

Fixes

  • c52bd2a Fix MIGraphX registration.
    • #512 missed a spot, thank you IntQuant =)
  • 374a9d1 Fix global environment thread pools
  • ff08428 Fix a segfault in Tensor::clone.
  • 3d6c2a9 Use new API to load the DirectML EP.
  • 5913ae0 Make vcpkg builds work again.
  • 079ecb4 Fix issues with multiple environment registration.

❤️🧡💛💚💙💜