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!
Authentic AI voice models for enterprise.
📍 Multiversioning
🚨 If you used
ortwithdefault-features = false, enable theapi-24feature 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_LOCATIONenvironment variable has been renamed toORT_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!
- Same with all other env vars ending in
- Everything that used to be in
ort::tensoris now inort::value, because why have atensormodule if theTensor<T>type actually comes from thevaluemodule? IoBindingandAdapterwere moved from their own modules intoort::session. All sub-modules ofort::sessionbesidesbuilderwere collapsed intoort::session.- All sub-modules of
ort::operatorwere collapsed intoort::operator. - Session option changes:
with_denormal_as_zero->with_flush_to_zerowith_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.