Skip to content

LinML v0.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 02:13
· 62 commits to main since this release

LinML v0.2.0 — Plugin EP Catalog & Hardware Auto-Setup

🎯 Highlights

  • Complete plugin EP catalog — OpenVINO 1.6.1, TensorRT-RTX 0.4.0, and MIGraphX 2611.1 (AMD ROCm) now fully integrated with SHA-256 verification, automatic download, and session attachment.
  • linml setup hardware auto-setup — detects host compute accelerators (NVIDIA GPUs, Intel CPUs/GPUs, AMD ROCm GPUs, CPU vector extensions) and automatically installs matching vendor plugin EPs.
  • linml catalog CLI — inspect, download, install, and verify plugin EPs directly from the command line.
  • CI-built MIGraphX EP — reproducible GitHub Actions build of AMD's MIGraphX plugin EP (onnxruntime-ep-amdgpu) with pinned version, SHA-256 verification, and GitHub Release assets.

✨ New Features

linml setup — Hardware Auto-Setup

# Preview hardware detection and recommended plugins without installing
linml setup --dry-run

# Automatically install all matching vendor plugins for detected hardware
linml setup

# Install all catalog plugins regardless of hardware
linml setup --all

# Machine-readable output with hardware inventory and installation plan
linml setup --dry-run --json

Detects: NVIDIA GPUs (via nvidia-smi), Intel CPUs/GPUs, AMD ROCm GPUs, CPU vector extensions (AVX2, AVX-512, AMX).
Installs: OpenVINO, TensorRT-RTX, MIGraphX plugin EPs with SHA-256 verification.

linml catalog — Plugin EP Catalog CLI

# List all 6 execution providers with type, version, readiness status, and location
linml catalog list

# JSON format
linml catalog list --json

# Install a specific plugin execution provider (download, verify SHA256, create symlinks)
linml catalog install openvino
linml catalog install trt-rtx
linml catalog install migraphx

# Install all plugin execution providers
linml catalog install all

# Force re-installation or specify custom cache root
linml catalog install openvino --force --root ~/.local/linml-deps

LinML.Catalog Library

LinML.Catalog is the Linux counterpart to Windows ML's ExecutionProviderCatalog. It unifies:

  • Built-in EPs: CPUExecutionProvider, CUDAExecutionProvider, TensorrtExecutionProvider
  • Plugin EPs: OpenVINOExecutionProvider (1.6.1), NvTensorRTRTXExecutionProvider (0.4.0), MIGraphXExecutionProvider (2611.1)

Key capabilities:

  • Automatic vendoring of pinned plugin EPs with SHA-256 integrity verification
  • Dynamic registration via PluginLibraryRegistry (shared with CLI)
  • AppendFromCatalog() extension method for SessionOptions
  • Readiness probing with clear install hints for missing plugins
using LinML.Catalog;
using LinML.Contracts;

IExecutionProviderCatalog catalog = ExecutionProviderCatalog.GetDefault();
IExecutionProvider openVino = catalog.Find(ProviderId.OpenVino)!;
ProviderEnsureResult ensured = await openVino.EnsureReadyAsync(new EnsureOptions(AllowDownloads: true));

using var sessionOptions = new SessionOptions();
if (ensured.IsReady)
{
    ProviderAppendResult result = sessionOptions.AppendFromCatalog(openVino, [OrtHardwareDeviceType.CPU]);
}

MIGraphX EP Plugin (CI-Built)

  • Source: onnxruntime-ep-amdgpu (AMD's official repo)
  • Pinned version: 2611.1 (configurable via EP_VERSION in scripts/build-migraphx-ep.sh)
  • Build: ROCm 10.0 container in GitHub Actions (rocm/dev-ubuntu-24.04:10.0.0-full)
  • Artifacts: SHA-256 verified, uploaded to GitHub Release ep-migraphx-<version>
  • Verification: Catalog pins by URL + SHA-256; published release never overwritten

🔧 Improvements

Area Change
Verification All plugin EPs verified with SHA-256; catalog refuses mismatched downloads
WSL2 TensorRT-RTX EP correctly detected as WSL2-incompatible (virtual PCI constraint)
Dependencies scripts/setup-gpu-deps.sh installs cuDNN 9.x + TensorRT 10.x to ~/.local/linml-deps
Environment scripts/env-gpu-deps.sh exports LD_LIBRARY_PATH and LINML_EP_LIBRARIES

🧪 Quality

  • Build: dotnet build --warnaserror — 0 warnings, 0 errors
  • Tests: Integration (CPU/CUDA/TensorRT), Catalog (plugin install/registration), Policy (fallback/selection)
  • CI: Separate MIGraphX EP build workflow; main CI validates all built-in EPs

📦 Assets

Asset Description
linml-0.2.0-linux-x64.tar.gz Self-contained CLI binary (linux-x64) + helper scripts
linml-linux-x64.tar.gz Unversioned alias (latest)
SHA256SUMS.txt SHA-256 checksums for verification

🔗 Links


Upgrading

# Download and verify
curl -L -o linml-0.2.0-linux-x64.tar.gz https://github.com/trackdubllc/LinML/releases/download/v0.2.0/linml-0.2.0-linux-x64.tar.gz
sha256sum -c SHA256SUMS.txt  # verify

# Extract and run
tar -xzf linml-0.2.0-linux-x64.tar.gz
./linml --help

🙏 Contributors

@tonythethompson (all changes this release)