TensorRT 推理优化
把训练好的模型部署到边缘:ONNX → TensorRT 引擎构建 → 层/张量融合(Conv+BN+ReLU 塌缩成单个 CBR kernel) → INT8/FP16 PTQ 校准 → 自定义 NMS Plugin(IPluginV2) → SSD 目标检测推理。补全作品集缺的 senior MLSys 拼图。
复演 TensorRT Builder 把 ONNX 模型编译成推理引擎:原始 Conv→BN→ReLU 链塌缩成单个 CBR kernel(层融合)→ INT8 PTQ 校准 → 自定义 NMS Plugin 插入计算图 → 前后延迟对比收尾。
本地版本说明
这是 TensorRT 公开文档标准行为的复演,不真跑引擎构建、不调 GPU。来源贪心课程是 video-only(133 个 MP4,无代码 / 课件 / 字幕),所以技术细节基于 TensorRT 文档(课程确认在教这些),不是搬课程代码。延迟数字标注为示意——课程未给任何基准,没有数字被当作实测呈现。
TensorRT 引擎构建(ONNX → SSD 推理)
复演 Builder 把 ONNX 模型编译成推理引擎的过程:层/张量融合把 Conv+BN+ReLU 塌缩成单个 CBR kernel,INT8 PTQ 校准,再把自定义 NMS Plugin 插进图里。延迟数字为示意。
计算图(ONNX 原始)
融合让 kernel launch 数量从 9 降到 3 · auto-tuning 选最快 kernel
1. 解析 ONNX → TensorRT 计算图
2. 层/张量融合:Conv+BN+ReLU → CBR
3. INT8 PTQ 校准(FP32 → INT8)
4. NMS 自定义 Plugin(IPluginV2DynamicExt)
5. 引擎构建完成 → 前后延迟对比
builder.build_serialized_network(network, config) → engine.plan
建议体验
构建引擎,看最有看头的一步:三条 Conv→BN→ReLU 链可见地合并成单个 CBR kernel(kernel launch 9 → 3)。
看 INT8 PTQ 校准给每个融合节点打标,再看自定义 NMS Plugin 作为独立节点插进计算图。
读前后延迟对比条——标注为示意,因为 video-only 课程没给任何基准。
这个试玩能说明什么
你能把模型部署到边缘——把训练好的模型编译成低延迟推理引擎,而不只是训出来。
你懂图编译器:层融合、kernel auto-tuning、算子可分解 / 不可分解的边界。
你能对着生产级推理运行时写自定义 C++/CUDA 算子(IPluginV2 NMS plugin),并能权衡 INT8 量化得失——这是作品集缺的 senior MLSys 信号。
完整管线
ONNX → TensorRT 引擎构建 → 融合 → INT8 PTQ → NMS Plugin → SSD 推理
自定义算子
NMS 写成 IPluginV2 / IPluginV2DynamicExt CUDA plugin
最强信号
图编译器 + 量化 + 自定义 CUDA 算子——边缘部署