Runtime Packages
Runtime packages carry the native deployment assets for one explicit TensorRT / CUDA / cuDNN combination:
- the JYPPX native bridge library
- the matching CUDA runtime dynamic libraries
- the matching TensorRT dynamic libraries
- the matching cuDNN dynamic libraries when the selected TensorRT line needs them
- optional deployment dependencies such as cuBLAS for TensorRT 8 parser/plugin support
Naming Rule
Runtime package keys and NuGet package IDs include dependency major.minor versions:
- runtime key:
win-x64-trt10.11-cuda11.8-cudnn8.9 - package ID:
JYPPX.TensorRT.CSharp.API.Runtime.win-x64.trt10.11.cuda11.8.cudnn8.9
The public runtime manifest still stores full vendor versions, for example TensorRT 10.11.0.33 and cuDNN 8.9.7.29. This keeps package names readable while keeping the exact binary provenance auditable.
Do not use ambiguous package names such as win-x64-trt10-cuda11 or JYPPX.TensorRT.CSharp.API.Runtime.win-x64.trt10.cuda11.
Windows Matrix
Current Windows runtime targets:
win-x64-trt8.6-cuda11.8-cudnn8.9: TensorRT8.6.1.6, CUDA11.8, cuDNN8.9.7.29win-x64-trt8.6-cuda12.1-cudnn8.9: TensorRT8.6.1.6, CUDA12.1, cuDNN8.9.7.29win-x64-trt10.11-cuda11.8-cudnn8.9: TensorRT10.11.0.33, CUDA11.8, cuDNN8.9.7.29win-x64-trt10.11-cuda12.9-cudnn9.22: TensorRT10.11.0.33, CUDA12.9, cuDNN9.22.0win-x64-trt11.0-cuda12.9-cudnn9.22: TensorRT11.0.0.114, CUDA12.9, cuDNN9.22.0win-x64-trt11.0-cuda13.2-cudnn9.22: TensorRT11.0.0.114, CUDA13.2, cuDNN9.22.0
The stable TensorRT 10 / CUDA 11.8 path has current package-consumer evidence. On 2026-06-12, win-x64-trt10.11-cuda11.8-cudnn8.9 restored from local packages, built a consumer app, copied 16/16 native assets, and passed smoke with TensorRT 10.11.0, CUDA 11.8, and one CUDA device.
The validated Windows maintainer environment uses CUDA 12.9 for the CUDA 12.9 target presets. The win-x64-trt10.11-cuda12.9-cudnn9.22 and win-x64-trt11.0-cuda12.9-cudnn9.22 packages have completed local runtime asset collection, runtime packing, package consumer validation, and package consumer smoke.
TensorRT 11 packages are active in the matrix. The Windows trt11.0-cuda12.9-cudnn9.22 path now has native minimal adapter smoke validation and package consumer smoke validation for logger/runtime/builder/config/network/serialized-engine/deserialize/context. On 2026-06-14, the trt11.0-cuda13.2-cudnn9.22 line built the native bridge, packed the full split component set plus collection package, and passed package consumer restore/build/native-copy validation locally. Runtime smoke remains pending until a CUDA 13-capable driver/runtime stack is available.
Current package consumer validation:
win-x64-trt10.11-cuda11.8-cudnn8.9:16/16native assets copied, package consumer smoke passed.win-x64-trt10.11-cuda12.9-cudnn9.22:19/19native asset patterns copied, package consumer smoke passed.win-x64-trt11.0-cuda12.9-cudnn9.22:19/19native asset patterns copied, package consumer smoke passed.win-x64-trt11.0-cuda13.2-cudnn9.22: 2026-06-14 full split package set packed;19/19native asset patterns copied, package consumer restore/build passed, package consumer smoke not requested because the current driver reports CUDA12.9rather than a CUDA 13-capable runtime stack.
Local Roots
Windows local roots are intentionally not stored in the public manifest. Use pack/runtime/runtime-packages.local.json for machine-specific root overrides; that file is ignored by Git. Start from pack/runtime/runtime-packages.local.example.json.
To sync repository-relative TensorRT/cuDNN roots from the active workstation into the user profile override file used by self-hosted runs, use:
powershell -ExecutionPolicy Bypass -File .\eng\Sync-LocalRuntimeRoots.ps1
Before packaging a Windows runtime package, validate all explicit inputs:
$roots = powershell -ExecutionPolicy Bypass -File .\eng\Resolve-RuntimeRoots.ps1 `
-RuntimePackageKey win-x64-trt8.6-cuda11.8-cudnn8.9 | ConvertFrom-Json
powershell -ExecutionPolicy Bypass -File .\eng\Validate-WindowsRuntimeInputs.ps1 `
-RuntimePackageKey win-x64-trt8.6-cuda11.8-cudnn8.9 `
-TensorRtRoot $roots.tensorRtRoot `
-CudaRoot $roots.cudaRoot `
-CudnnRoot $roots.cudnnRoot
Asset Collection
Assets are collected by:
eng/Collect-RuntimeAssets.ps1pack/runtime/runtime-packages.manifest.json
Current native bridge output layout:
build-out/<preset>/bin/<Configuration>/build-out/<preset>/lib/<Configuration>/
Bridge binaries are isolated per CMake preset and should always be collected using the matching buildPreset from the runtime manifest.
TensorRT 8 Windows runtime packages collect additional parser/plugin dependencies:
win-x64-trt8.6-cuda11.8-cudnn8.9:cublas64_11.dll,cublasLt64_11.dll, and the fullcudnn*_8.dllsplit runtime setwin-x64-trt8.6-cuda12.1-cudnn8.9:cublas64_12.dll,cublasLt64_12.dll, and the fullcudnn*_8.dllsplit runtime set
TensorRT 11 Windows packages use a different runtime layout from older TensorRT packages: DLLs are under bin, while import libraries are under lib. The runtime manifest collects the DLLs.
Split Runtime Components
Windows runtime packages are modeled as split component packages under pack/runtime-split.
Component roles:
Bridge: carries only the local C ABI bridge.CudaCudnn: carries CUDA runtime and cuDNN assets.TensorRtRuntime: carries the core TensorRT runtime assets.TensorRtExtensionsor TensorRT builder-resource packages: carry parser, plugin, builder-resource, or architecture-specific TensorRT assets.- The original runtime package ID remains a lightweight collection package that pins a tested component-version combination.
CUDA/cuDNN/TensorRT component package versions do not need to match the managed package version. Republish them only when the NVIDIA dependency set changes. Republish Bridge and the collection package when the local native bridge changes, while pinning the existing vendor component versions.
Linux Status
Linux runtime package entries mirror the same TensorRT / CUDA / cuDNN major.minor matrix and include wildcard .so asset patterns. Linux packaging remains structurally prepared but not validated on this Windows workstation.
Current Linux workflow modules target future self-hosted Linux x64 runners:
runtime-linux.ymlrelease-bundle.yml
Linux packages must remain dry-run-only until a real Linux runner validates build, asset collection, package restore, native .so copy, and optional GPU smoke.
Publication Risk
Runtime packages can become very large because they may include TensorRT builder resources, plugins, parser libraries, CUDA runtime assets, cuBLAS, and cuDNN.
Current publication strategy:
- Publish
JYPPX.TensorRT.CSharp.APIto nuget.org and GitHub Packages. - Keep large CUDA/cuDNN/TensorRT component packages on GitHub Packages when they fit the GitHub NuGet registry, or on GitHub Releases as release assets.
- Treat GitHub Release assets as downloadable package files, not as a NuGet feed. When vendor packages are kept only on a Release, the release workflow downloads them into a temporary local package source before validating
bridge,collection. - Treat runtime package versions independently from the managed package version.
- Rebuild full CUDA/cuDNN/TensorRT component packages only when the NVIDIA dependency set changes.
- Rebuild
bridge,collectionsplit packages when the local C ABI bridge changes, and pass the existing vendor component package version so CUDA/cuDNN/TensorRT packages are not republished.
Before public distribution, NVIDIA TensorRT / CUDA / cuDNN redistribution terms must still be reviewed for the exact binaries being shipped.