LinML.Catalog
0.5.1
dotnet add package LinML.Catalog --version 0.5.1
NuGet\Install-Package LinML.Catalog -Version 0.5.1
<PackageReference Include="LinML.Catalog" Version="0.5.1" />
<PackageVersion Include="LinML.Catalog" Version="0.5.1" />
<PackageReference Include="LinML.Catalog" />
paket add LinML.Catalog --version 0.5.1
#r "nuget: LinML.Catalog, 0.5.1"
#:package LinML.Catalog@0.5.1
#addin nuget:?package=LinML.Catalog&version=0.5.1
#tool nuget:?package=LinML.Catalog&version=0.5.1
LinML.Catalog
Execution provider catalog for ONNX Runtime on Linux.
LinML.Catalog is the Linux counterpart to the Windows ML (WinML) ExecutionProviderCatalog. It automates vendoring, SHA-256 integrity verification, dynamic registration, and session attachment for external plugin execution providers on Linux.
Supported Execution Providers
LinML.Catalog provides unified discovery, readiness probing, and session attachment across both built-in and external plugin execution providers:
Built-In Providers (ProviderSource.BuiltIn)
- CPU (
CPUExecutionProvider): Baseline execution provider, always ready. - CUDA (
CUDAExecutionProvider): Probed via host runtime (e.g.Microsoft.ML.OnnxRuntime.Gpu) and verified before session append. - Classic TensorRT (
TensorrtExecutionProvider): Probed via host runtime and verified before session append.
Plugin Providers (ProviderSource.Plugin)
- OpenVINO Plugin EP (
onnxruntime-ep-openvino1.6.1): Pinned PyPI wheel automated vendoring, SHA-256 verification, and registration. - TensorRT-RTX Plugin EP (
onnxruntime-ep-nv-tensorrt-rtx0.4.0): Pinned PyPI wheel automated vendoring, SHA-256 verification, SONAME symlink management, and registration (on WSL2 with GPU passthrough the catalog installs and registers the LinML-hosted patched build instead, default on; opt out withLINML_TRT_RTX_WSL2=0;TRT_RTX_CUSTOM_EPoverrides both). In containers the install root is$HOME/.local/linml-depsunlessCreate(root)is used; mount a volume there to keep installs across runs. - MIGraphX Plugin EP (
onnxruntime-ep-amdgpu2611.1): Pinned standalone plugin release archive vendoring, SHA-256 verification, and registration.
Installation
dotnet add package LinML.Catalog
Prerequisite:
LinML.CatalogreferencesMicrosoft.ML.OnnxRuntime.Managedto avoid native library conflicts. The consuming host application must supply a native ONNX Runtime package (such asMicrosoft.ML.OnnxRuntime.GpuorMicrosoft.ML.OnnxRuntime).
Usage
using LinML.Catalog;
using LinML.Contracts;
using Microsoft.ML.OnnxRuntime;
// 1. Get default catalog instance
IExecutionProviderCatalog catalog = ExecutionProviderCatalog.GetDefault();
// 2. Discover OpenVINO plugin
IExecutionProvider openVino = catalog.Find(ProviderId.OpenVino)!;
// 3. Ensure plugin binaries are ready (downloads & verifies SHA-256 checksum)
ProviderEnsureResult ensured = await openVino.EnsureReadyAsync(new EnsureOptions(AllowDownloads: true));
// 4. Configure SessionOptions with verified plugin EP
using var sessionOptions = new SessionOptions();
if (ensured.IsReady)
{
ProviderAppendResult result = sessionOptions.AppendFromCatalog(openVino, [OrtHardwareDeviceType.CPU]);
}
// 5. Create ONNX Runtime session
using var session = new InferenceSession("model.onnx", sessionOptions);
Design Principles
- No Conflicting Binaries: References only
Microsoft.ML.OnnxRuntime.Managed. The host application supplies the native ONNX Runtime (e.g.Microsoft.ML.OnnxRuntime.Gpu), avoiding duplicatelibonnxruntime.socollisions. - Integrity Verified: Plugin binaries are verified against strict cryptographic SHA-256 digests.
- Shared Registry: Shares the
PluginLibraryRegistrywith the LinML CLI.
Documentation & Repository
For more details, CLI tools, and architecture documentation, visit the LinML GitHub Repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- LinML.Contracts (>= 0.5.1)
- Microsoft.ML.OnnxRuntime.Managed (>= 1.31.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.