TENSORRT
TensorRT 推理优化基础
TensorRT 面向 NVIDIA GPU 优化神经网络推理。它通过图优化、算子融合、精度选择和内核搜索生成适合目标 GPU 的执行引擎。
1. 从 ONNX 到 Engine
常见流程是从训练框架导出 ONNX,TensorRT 解析计算图并选择实现策略,最终构建 Engine。Engine 与 GPU 架构、TensorRT 版本和精度配置相关,不适合随意跨环境复制。
2. 图优化
- 常量折叠:提前计算固定表达式。
- 层融合:减少中间张量和内存访问。
- 内核自动选择:为目标硬件选择更快实现。
- 张量内存复用:降低显存峰值。
3. 精度模式
| 模式 | 特点 | 注意点 |
|---|---|---|
| FP32 | 精度基准,兼容性好 | 速度和显存占用较高 |
| FP16 | 常有明显加速 | 需检查数值敏感层 |
| INT8 | 吞吐和显存优势大 | 需要代表性校准数据或量化感知训练 |
4. 动态尺寸
动态输入需要配置最小、最优和最大 Shape。范围过大可能增加构建时间和策略空间,也可能让最常用尺寸得不到最佳优化。生产环境应根据真实输入分布设置 Profile。
5. 正确测量性能
应先预热,再使用 CUDA Event 或可靠工具计时;区分纯模型延迟与包含数据传输、预处理和后处理的端到端延迟;同时记录吞吐、显存、批量和并发流。
部署前检查:输出误差、插件算子、动态维度、目标 GPU、精度校准和端到端耗时必须全部验证。
参考资料
- NVIDIA TensorRT 官方文档。
- ONNX 与 TensorRT 部署公开资料。