TensorRtSharp4.0 是什么
TensorRtSharp4.0 是面向 .NET 的 TensorRT / CUDA 高层封装项目。它的目标不是把 NVIDIA C++ API 原样暴露给 C#,而是在 C ABI bridge、托管 interop 和高层 wrapper 之间建立一条可验证的部署链路,让 .NET 用户能够用更稳定的对象模型完成 engine build、deserialize、tensor binding、enqueue、CUDA memory/stream 操作和 package 化部署。
当前项目已经越过“扫描头文件并补齐入口”的阶段。接口覆盖报告可以证明 manifest/source 的入口数量已经追平,但真实可用性仍以非 deferred 实现、高层 C# wrapper、smoke、package consumer 和 readiness 证据为准。
目标读者
- 希望在 .NET 项目中使用 TensorRT / CUDA 的 C# 工程师。
- 正在评估 TensorRtSharp4.0 是否适合进入内部 PoC、工具链或推理服务的技术负责人。
- 需要理解
native/、src/JYPPX.TensorRtSharp、src/JYPPX.CudaSharp、samples/、smoke/和artifacts/如何共同证明完成度的维护者。 - 需要区分 API 覆盖、runtime smoke、package consumer proof 和 release close proof 的发布负责人。
项目分层
项目主要分为四层:
- native bridge:位于
native/,通过 C ABI 暴露 TensorRT/CUDA 能力。 - generated interop:位于
src/*/Internal/Interop/Generated,由 manifest 和 generator 生成。 - high-level wrapper:位于
src/JYPPX.TensorRtSharp和src/JYPPX.CudaSharp,面向普通 C# 用户。 - samples/smoke/package gates:位于
samples/、smoke/、eng/和artifacts/,用于证明 API 能被构建、消费、运行或明确阻塞。
这四层必须同时成立,才适合把某个接口宣传为用户可用 API。只有 native entrypoint 或 manifest row,不等于高层可用。
当前可用路径
当前仓库中更适合作为入门路径的样例包括:
samples/Performance/01.MultiStream:CUDA stream/event 和跨 stream ordering。samples/Inference/02.DynamicShapes:TensorRT dynamic shape、optimization profile 和 inference binding。samples/Inference/01.Bindings:最小 identity network 的输入输出绑定和 enqueue。applications/OnnxToEngine:ONNX parser、serialized engine build、deserialize 和 round-trip。
samples/ComputerVision/01.Classification 与 applications/YoloVision 是面向真实模型的用户侧样例,但模型、labels、图片不随仓库分发,需要用户自行准备可再分发资产。
更多发布前完成度请查看 artifacts/interface-coverage/release-api-readiness-audit.json。它会明确 safe read-only candidates、blocked ownership risk APIs 和跨版本 guard,而不是只看 manifest/source 是否匹配。
可复制命令
先从文档和样例入口确认项目形状:
dotnet build .\TensorRtSharp.sln -c Debug --no-restore /m:1 /p:UseSharedCompilation=false /nr:false /v:minimal
dotnet test .\tests\JYPPX.ProjectQuality.Tests\JYPPX.ProjectQuality.Tests.csproj -c Debug --no-build --filter "FullyQualifiedName~ReleaseReadinessSmokeClosureTests|FullyQualifiedName~ReleaseArticleMatrixTests" /p:UseSharedCompilation=false /nr:false /v:minimal
如果要从用户路径试用,优先读这些入口:
applications/OnnxToEngineapplications/YoloVisionapplications/TensorRtExecsrc/JYPPX.TensorRtSharpsrc/JYPPX.CudaSharp
当前发布证据
当前 win-x64-trt11.0-cuda13.2-cudnn9.22 package readiness 已显示:
Overall=readysplit components: ready 3/3readiness blockers: 0vendor blockers: none
但 full package consumer runtime smoke 在当前机器上被 CUDA driver/runtime compatibility 阻塞为 blocked-by-cuda-driver,错误来自 cudaRuntimeGetVersion 的 CUDA error 35。这说明 package 布局、restore/build/native-copy 和 TensorRT bridge 探测已经走到 runtime 边界,但当前机器不是 CUDA 13.2 runtime smoke 的兼容执行环境。
必须保留的边界
不要把以下内容当成项目 100% runtime 可用:
- manifest/source 入口数量追平。
- readiness blockers 清零。
- bridge-only dependency probe 通过。
- compile-only package consumer 通过。
- safety gate、design gate、precheck 或 copied-state 证据。
这些材料都是工程 readiness 的一部分,但它们仍然是 not runtime proof、not public package proof、not post-publish proof、not package push、not release close approval。
特别是 callback 相关接口仍保持谨慎边界。在 full package consumer smoke 输出完整 EvidenceKind=real-callback-runtime、RealCallbackRuntime=True 和 required markers 前,IGpuAllocator::*、IGpuAsyncAllocator::*、IOutputAllocator::* 和 IDebugListener::processDebugTensor direct callback rows 必须继续 deferred。
适合谁使用
TensorRtSharp4.0 适合:
- 希望在 .NET 中部署 TensorRT engine 的开发者。
- 需要 CUDA memory/stream/event 基础能力的 C# 项目。
- 想要用 NuGet/runtime package 交付 TensorRT/CUDA 依赖的团队。
- 需要清晰诊断 package restore、native asset copy、driver/runtime compatibility 的工程团队。
如果你的需求是直接扩展 TensorRT plugin、注册真实 allocator/debug-listener callback 或暴露 native borrowed pointer,那么当前仍应先阅读 callback boundary 文档,并等待对应 proof 完成。
截图与图示建议
- 架构图:
native bridge -> generated interop -> high-level wrapper -> samples/smoke/package gates。 - 完成度漏斗图:manifest/source match、non-deferred implementation、C# wrapper、smoke、package-consumer proof、post-publish proof。
- 用户路径图:
applications/OnnxToEngine、applications/YoloVision、applications/TensorRtExec、docs/articles/zh-cn。
下一步
- 模型用户从
applications/OnnxToEngine和applications/TensorRtExec开始,先完成 ONNX build/report。 - 视觉用户从
applications/YoloVision开始,准备模型、labels、输入资产、license 和 SHA256。 - 维护者继续按
artifacts/interface-coverage/tensorrt-interface-comparison.csv筛选安全只读 deferred API,优先完成 manifest/source/interop/wrapper/smoke 闭环。
Boundary keywords: not public package proof, not post-publish proof, not package push, not release close approval.