Repository navigation
LinML v0.2.0
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 setuphardware 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 catalogCLI — 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 --jsonDetects: 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-depsLinML.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 forSessionOptions- 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_VERSIONinscripts/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
- Source:
trackdubllc/LinML - Compare v0.1.0 → v0.2.0: GitHub Compare
- Issues: GitHub Issues
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)