1) TensorRT 是什么,它解决什么问题?
TensorRT 是 NVIDIA 的深度学习推理 SDK,用来把训练好的模型优化并生成高性能的 GPU 推理引擎(Builder→Engine→ExecutionContext),主要目标是降低延迟与提高吞吐。
- Builder 是 TensorRT 中负责 构建(compile/optimize)推理网络 的对象。
主要工作
-
解析网络结构(ONNX / API 定义)
-
算子融合、层合并、内存复用优化
-
精度选择(FP32 / FP16 / INT8)
-
tactic 选择(选择每个算子最优的实现 kernel,比如 cuDNN/cublas/cuTensor)
-
创建 optimization profiles(动态 shape 的 min/opt/max 范围)
- Engine
ICudaEngine 对象,代表了一个 优化过的推理模型。
是一个“可执行的模型程序(类似一个二进制可执行文件)”。
它包含了:
-
网络的拓扑结构
-
内存分配(workspace / weights layout)
-
选择好的算子实现(tactics)
-
优化 profile(如果有动态输入)
特点
-
不可修改(Engine 是优化后冻结的,不能再改算子/结构)
-
可以 序列化 / 反序列化:
-
序列化 → 保存为 .plan 文件
-
反序列化 → 加载回来直接用,不用重新 build
- ExecutionContext
一个 Engine 可以创建多个 ExecutionContext → 支持多线程 / 并发推理
- ONNX 导出不通过怎么办?
- torch 和 onnx 版本
- 动态 shape / dynamic_axes 设置问题 -1(动态
- opset
3)如果量化(INT8)精度下降明显,你会怎么办?
-
混合精度(Fallback )
不是所有层都必须 INT8,可以 只量化计算密集的层(卷积/全连接),其余保持 FP16/FP32。 -
per-channel scale
让每个通道都充分利用 INT8 的数值范围,避免某些通道的数值被压扁。
4)怎么评估量化效果?
精度层面:在验证集跑任务指标(分类 Top-1/Top-5,检测 mAP),量化前后对比精度下降幅度。
数值层面:计算输出张量的 MSE / Max Error / Cosine similarity,判断量化误差大小。
271

被折叠的 条评论
为什么被折叠?



