Runtime Distribution Strategy
Current reality
Runtime packages must now be versioned by the exact major/minor deployment combination:
- TensorRT major/minor, for example
trt10.11 - CUDA major/minor, for example
cuda11.8 - cuDNN major/minor, for example
cudnn8.9
Example package key:
win-x64-trt10.11-cuda11.8-cudnn8.9
Example package id:
JYPPX.TensorRT.CSharp.API.Runtime.win-x64.trt10.11.cuda11.8.cudnn8.9
Do not use ambiguous names such as win-x64-trt10-cuda11 for runtime packages. CMake preset names may still use line-based labels such as win-x64-trt10-cuda11-release because they describe a build line rather than a NuGet runtime identity.
Windows runtime matrix
Current Windows runtime package targets:
win-x64-trt8.6-cuda11.8-cudnn8.9win-x64-trt8.6-cuda12.1-cudnn8.9win-x64-trt10.11-cuda11.8-cudnn8.9win-x64-trt10.11-cuda12.9-cudnn9.22win-x64-trt11.0-cuda12.9-cudnn9.22win-x64-trt11.0-cuda13.2-cudnn9.22
CUDA 12.9 is installed on the current Windows development machine. Runtime packages targeting cuda12.9 must now build and validate against CUDA 12.9; the earlier CUDA 12.3 fallback is retired and must not be used for locally validated packages.
Current Windows package-consumer readiness:
win-x64-trt10.11-cuda11.8-cudnn8.9: package consumer smoke passed.win-x64-trt10.11-cuda12.9-cudnn9.22: package consumer smoke passed.win-x64-trt11.0-cuda12.9-cudnn9.22: package consumer smoke passed.win-x64-trt11.0-cuda13.2-cudnn9.22: 2026-06-14 full split package set and collection package packed locally, restore/build/native-copy passed with19/19native asset patterns, but readiness remains blocked until CUDA 13 runtime/builder smoke is available.
Linux runtime matrix
Linux package structure is kept in the manifest and workflows, but Linux packaging is not the current development focus. Linux package keys mirror the Windows matrix:
linux-x64-trt8.6-cuda11.8-cudnn8.9linux-x64-trt8.6-cuda12.1-cudnn8.9linux-x64-trt10.11-cuda11.8-cudnn8.9linux-x64-trt10.11-cuda12.9-cudnn9.22linux-x64-trt11.0-cuda12.9-cudnn9.22linux-x64-trt11.0-cuda13.2-cudnn9.22
Linux packages stay dry-run-only until a real Linux x64 runner validates build, asset collection, pack, and package consumer restore/build.
Distribution lanes
Current lane guidance:
TRT8Windows packages are public-preview candidates only after NVIDIA redistribution terms and package size limits are reviewed.TRT10Windows packages are private-feed or split-delivery candidates because builder resources, plugins, and parser assets can be large. Both Windows TRT10 package-consumer smoke paths have 2026-06-12 local evidence.TRT11Windows CUDA12.9is a private-feed candidate with package-consumer smoke evidence. Windows CUDA13.2remains blocked until driver/runtime-compatible smoke is available.- Linux packages stay dry-run candidates until a real Linux runner validates them.
nuget.org size boundary
nuget.org has an approximately 250 MB per-package size limit. The v4.0.6142 Windows split runtime Release assets currently contain 32 .nupkg files; 17 of them exceed 250 MB, and the largest package is about 1225.88 MB. Therefore:
- The
JYPPX.TensorRT.CSharp.APImanaged package can be published to nuget.org. - Small
Bridgeand collection packages can be published to nuget.org or GitHub Packages when needed. - Most CUDA/cuDNN/TensorRT vendor component packages are not suitable for nuget.org and should normally stay on GitHub Packages when a NuGet feed is required, or as GitHub Release assets when direct
.nupkgdownload is acceptable. - GitHub Release assets are not queried by NuGet restore. If the vendor packages stay only on a Release, validation and consumers must download the matching
.nupkgfiles into a local package source first. - If only the local C ABI bridge or C# wrapper changes later, republish the
Bridge, collection, and managed packages. Do not republish CUDA/cuDNN/TensorRT vendor packages unless the NVIDIA dependency set changes.
Engineering rules
Each runtime package entry in pack/runtime/runtime-packages.manifest.json records:
tensorRtVersioncudaVersioncudnnVersioncudnnMajordistributionTiervalidationStatedistributionNotes
Validation rules:
- Package key and package id must include TensorRT, CUDA, and cuDNN major/minor fragments.
- Full vendor patch versions stay in manifest metadata and documentation, not in package identity.
- CUDA
12.9target packages can only be markedlocal-validatedwhen the exact CUDA12.9toolkit and matching TensorRT/cuDNN assets were used. - Private-feed and split-delivery readiness require
local-validated;pending-local-validationanddry-run-onlymust stay blocked. - NVIDIA binary dependencies must not be committed to Git.
Supporting scripts:
eng/Validate-RuntimeManifest.ps1eng/Validate-WindowsRuntimeInputs.ps1eng/Collect-RuntimeAssets.ps1eng/Export-RuntimeDistributionReport.ps1eng/Export-RuntimeDeliveryStrategy.ps1eng/Test-RuntimePublishReadiness.ps1eng/Export-ReleaseCandidateChecklist.ps1
Split Runtime Components
The split runtime model applies to Windows runtime combinations that are too large or too stable to republish with every managed-code release:
Bridge: local C ABI bridge, republished when native wrapper code changes.CudaCudnn: CUDA runtime and cuDNN assets, republished only when the CUDA/cuDNN dependency set changes.TensorRtRuntime/TensorRtExtensions/ builder-resource packages: TensorRT assets, republished only when the TensorRT dependency set changes.- collection package: the original runtime package ID, republished when a new tested component-version combination should be advertised.
The managed package can release independently from these runtime component packages. This keeps routine C# API changes small while preserving reproducible runtime combinations.
Release boundary
Formal public distribution is blocked until these issues are resolved:
- NVIDIA CUDA / cuDNN / TensorRT redistribution terms are reviewed.
- NuGet.org package-size practicality is reviewed.
- Runtime package keys, package IDs, component package versions, and manifest metadata are aligned.
- Package consumer validation covers the intended release packages.
- TensorRT 11 packages pass real adapter-backed runtime/package smoke on the intended CUDA driver/runtime stack.