TensorRT 核心能力与关键配置项
TensorRT 核心能力与关键配置项
| 能力 | 说明 | 关键配置项 |
|---|---|---|
| 层融合 | Conv + Bias + 激活合成单 kernel,还包括常量折叠与张量重排 | builder 自动完成,无需显式开关 |
| FP16 量化 | 半精度计算,多数网络精度损失很小,是最常用的第一档加速 | config.set_flag(trt.BuilderFlag.FP16) |
| INT8 量化 | 需要校准集统计激活分布,吞吐提升明显,但要逐层验证精度 | BuilderFlag.INT8 + IInt8EntropyCalibrator2 |
| 动态 shape | 同一个 engine 支持一段输入形状范围 | OptimizationProfile 的 min / opt / max |
| 显存规划 | 张量显存复用,控制峰值占用 | MemoryPoolType.WORKSPACE 上限 |
| Plugin | 补齐自定义算子,保证图不被切断 | IPluginV2 / IPluginV3 加注册宏 |
| 并发执行 | 一个 engine 配多个 context 与多条 stream | create_execution_context 加 CUDA stream |
| DLA 卸载 | Jetson / Orin 上把子图交给 DLA 执行,省功耗 | builder config 里的 device type 设置 |
配置上最容易踩的两点:一是 workspace 不是越大越好,超过某个阈值之后 builder 找到的 tactic 不再变化,多给的部分只是白占显存;二是动态 shape 必须认真给 opt 档,只给 max 的话 builder 会按最大形状优化,小 batch 场景反而更慢。INT8 的校准缓存(calibration cache)要留存,换机器或换 TensorRT 版本时重新生成。

