TensorRT

NVIDIA 推理优化引擎

定义

TensorRT 是 NVIDIA 推出的深度学习推理优化引擎,通过 INT8 量化、层融合、内核自动调优等技术,可将推理速度提升 2~3 倍,在保持精度的前提下显著降低算力需求。支持 ONNX 模型导入,适用于 Jetson、数据中心 GPU 等 NVIDIA 硬件。配合 GPU 边缘设备,可实现工业视觉、缺陷检测等场景的高效推理。

优化技术

TensorRT 将 ONNX、TensorFlow、PyTorch 等模型转换为优化后的引擎:层融合减少 kernel 启动开销;精度校准(INT8)在精度损失可控下提速;内核自动调优选择最优实现;动态 shape 支持可变输入。输出为 .engine 或 .plan 文件,推理时加载执行。Jetson 系列边缘设备常用 TensorRT 实现 YOLO、ResNet 等模型的高效推理。

与 NPU 对比

NPU 为专用 AI 芯片,能效高、成本可控;TensorRT 运行于 NVIDIA GPU,生态成熟、支持广泛。工业边缘 AI 选型:NVIDIA Jetson + TensorRT 适合需要强兼容性、多模型场景;NPU 适合大批量、对成本敏感的场景。两者均可配合 ONNX 模型部署。

应用场景

工业视觉缺陷检测、目标检测、分类;安防人脸识别、行为分析;自动驾驶感知。边缘 AI 网关采用 Jetson + TensorRT 可本地运行复杂模型,降低延迟与带宽。

构建期优化与引擎锁定

构建时融合层并选择内核

推理优化发生在构建阶段,而不是每次识别时临时决定。构建器读取网络,把相邻的卷积、偏置和激活并成更少的内核,再按目标显卡的架构试出较快的实现,最后写成一份引擎。引擎里既有融合后的权重,也有针对那一款处理器的调度。因此同一份网络在不同显卡上应分别构建。构建时选择的精度决定内核:32 位浮点、16 位浮点和 8 位整数不是同一条执行路径,8 位还需要一张校准表,说明每一层怎样把浮点缩到整数。

动态形状可以在构建时留下若干档位,但档位是预先选好的,不是无限任意。运行时输入落在档位之外,引擎会拒绝或落到很慢的路径。批量、分辨率一变,最优内核也会变,只在一种分辨率上测到的时延不能外推。

引擎绑定具体 GPU 和精度

使用条件是显卡型号、驱动和构建器版本与运行现场一致,输入预处理与构建时假设一致。引擎文件拷到另一代显卡上通常无法反序列化,即便能加载,时延和结果也不该默认相同。显存要同时放下引擎、输入缓冲和后处理。工业相机若先在中央处理器上解码再拷到显卡,拷贝时间会吃掉融合内核省下的时间,应确认整条管道而不只看推理内核的微秒数。

它适合模型已经冻结、设备是明确的一款加速卡、需要把时延压到产线节拍以内的场合。模型每周都改结构时,构建和校准的成本会高于收益。此时应把构建做成可重复的步骤,输入样例、精度和版本号一起留档,避免现场设备各跑一份来历不明的引擎。

校准集和动态形状

8 位校准最容易静默失败。校准图片若都来自曝光正常的实验室,现场的逆光、油污和运动模糊会使激活分布超出校准尺度,检测框置信度整体下降,程序不报错。应使用现场抽到的图片做校准,并在量化前后用同一批图片比较输出,差异大的层要留在更高精度。另一个错误是构建时开了某种形状优化,运行时却送入未对齐的边长,引擎直接拒绝,产线表现为相机正常但没有结果。

版本锁同样关键。驱动升级后旧引擎可能加载失败,升级窗口若没有保留上一份引擎和对应驱动,设备会停在无法回退的状态。多个模型共享一张卡时要限制并发上下文,否则显存碎片让第二份引擎加载失败。最后不要用桌面卡上的时延承诺嵌入式模组,两者的内存带宽和功耗墙不同,节拍要在目标模组上重新测量,包括预热之后的稳态而不是第一次推理。

相关术语

返回硬件类知识库