Skip to content

LinML v0.4.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 11:15
· 31 commits to main since this release

LinML v0.4.0

This release adds a Python package for running inference from Python and an opt-in patched TensorRT-RTX plugin that makes the GPU visible under WSL2. It also makes linux-arm64 builds more reliable.

Highlights

Python package

LinML can now be driven from Python.

  • New linml package with InferenceClient and InferenceSession.
  • A CLI wheel bundles the linml binary, so pip install gives you a working CLI.
  • Results now include per-run latency (LatencyMs) and node placement diagnostics, so you can see which execution provider ran each node.
  • Input handling is stricter and clearer:
    • Scalar (rank-0) inputs and outputs are handled correctly.
    • Unsupported boolean tensors raise a clear ValueError.
    • linml.doctor() validates that inputs were supplied.
  • The session manager checks that the server it connects to is serving the model you asked for, so it won't take over an unrelated local server. It also supports IPv6 hosts and has separate startup and request timeouts.
  • The Python wrapper can no longer call itself recursively when it looks for the CLI binary.

TensorRT-RTX on WSL2 (opt-in)

Under WSL2 the stock TensorRT-RTX plugin registers its execution provider but finds no GPU, because WSL2 reports the device with a virtual PCI ID that CUDA rejects.

  • We now ship a patched build that pairs the virtual adapter with the CUDA devices it can see.
  • It is opt-in. The default pin still points to NVIDIA's wheel. To install the patched build:
    bash scripts/fetch-ep-plugins.sh trt-rtx-wsl2
  • Library resolution order is TRT_RTX_CUSTOM_EP, then the vendored WSL2 build, then the stock wheel. TRT_RTX_CUSTOM_EP is now honoured by the CLI.
  • scripts/build-trt-rtx-ep.sh rebuilds the plugin reproducibly, so you can audit it.

linux-arm64

  • linml setup now correctly detects plugins that are already installed on ARM64 (including --dry-run).
  • Release builds of the self-contained linux-arm64 binary are fixed (see Fixes below).

Fixes

  • Release pipeline: the self-contained linux-arm64 publish failed because its runtime was never restored. It is now restored explicitly.
  • Release pipeline: verification no longer tries to run the arm64 binary on an x64 runner. arm64 is still tested natively in CI.
  • CI (ARM64): ONNX Runtime native libraries are installed and LD_LIBRARY_PATH is set, integration tests are excluded from the ARM64 job, and the "already installed" test is skipped on ARM64 because no plugins are recommended there.

Upgrade notes

  • No breaking changes to the CLI or the C# libraries.
  • WSL2 users who want GPU access through TensorRT-RTX should install the patched plugin with the command above.

Downloads

  • linml-linux-x64.tar.gz and linml-linux-arm64.tar.gz, both self-contained, with SHA-256 sums in SHA256SUMS.txt.
  • NuGet: LinML.Contracts and LinML.Catalog 0.4.0.

Full changelog: v0.3.0...v0.4.0