1. Jetson平台与TensorRT生态全景

在边缘AI推理部署中,NVIDIA Jetson并不是“一块GPU开发板”这么简单,它是一套从芯片、模组、载板到SDK、推理运行时、工具链的完整体系。理解这套体系的分层关系,是后续做模型转换、精度校准、性能调优和工程化部署的前提。本节先建立一张“全景地图”:Jetson硬件系列如何分层、JetPack SDK由什么组成、TensorRT在整条推理链路中处于什么位置,以及一个典型部署流程从模型到上线要经过哪些环节。

一、Jetson硬件系列:从入门到高算力的梯度

Jetson产品线按算力、功耗、内存带宽和接口能力形成明显梯度。常见的几代平台包括Nano、TX2、Xavier NX、AGX Xavier、Orin Nano、Orin NX、AGX Orin等。它们共享同一套CUDA/TensorRT软件栈,但GPU架构、Tensor Core数量、内存类型和AI算力差异很大。选型时不能只看TOPS(每秒万亿次操作)标称值,还要看内存带宽、功耗预算、编解码能力、PCIe通道和温度范围。

例如,Jetson Nano(初代)属于入门级,GPU为128核Maxwell,4GB LPDDR4,适合轻量分类、简单检测和教学验证;Jetson Xavier NX采用Volta架构GPU,384核CUDA加48个Tensor Core,8GB/16GB LPDDR4x,算力约21 TOPS,适合中等规模视觉推理;AGX Orin则采用Ampere架构,最高2048核CUDA、64个Tensor Core,32GB/64GB LPDDR5,算力可达275 TOPS,面向多路高清视频分析、机器人感知和复杂多模型并行。下表给出一个便于横向对比的示例参数(具体以官方数据手册为准):

平台GPU架构AI算力(示例)内存典型功耗适用场景
Jetson NanoMaxwell约0.5 TFLOPS FP164GB LPDDR45–10W教学、轻量分类
Xavier NXVolta约21 TOPS8/16GB LPDDR4x10–20W单路视觉检测
AGX XavierVolta约32 TOPS32GB LPDDR4x10–30W机器人、多传感器
Orin NanoAmpere约40 TOPS8GB LPDDR57–15W入门级边缘AI
AGX OrinAmpere约275 TOPS32/64GB LPDDR515–60W多路视频、复杂模型

需要强调的是,TOPS是理论峰值,实际推理吞吐还受内存带宽、模型算子类型、批大小、精度模式(FP32/FP16/INT8)和TensorRT优化程度影响。因此选型时应先明确模型规模、输入分辨率、目标帧率和功耗上限,再反推平台。

二、JetPack SDK:Jetson的软件底座

JetPack是NVIDIA为Jetson提供的官方SDK,它把操作系统、驱动、CUDA、cuDNN、TensorRT、VisionWorks、OpenCV、多媒体API和开发工具打包在一起。一个JetPack版本对应一个L4T(Linux for Tegra)版本,例如JetPack 5.x对应L4T 35.x,JetPack 6.x对应L4T 36.x。安装方式主要有两种:使用SDK Manager通过Ubuntu主机刷机,或直接烧录官方镜像。

JetPack内部的关键组件包括:

  • L4T:基于Ubuntu的根文件系统、内核、Bootloader和硬件驱动。
  • CUDA Toolkit:GPU并行计算基础,TensorRT和自定义算子都依赖它。
  • cuDNN:深度神经网络加速库,提供卷积、池化、归一化等原语。
  • TensorRT:推理优化器和运行时,负责图优化、精度校准和内核选择。
  • Multimedia API:硬件编解码,常用于视频解码后直接送入推理。
  • DeepStream(可选):视频分析流水线框架,适合多路视频结构化。

版本匹配是部署中最容易踩坑的地方:TensorRT版本必须与CUDA、cuDNN、驱动以及模型转换工具(如ONNX parser)兼容。例如用TensorRT 8.5生成的engine,通常不能直接在TensorRT 8.2的运行时加载。因此工程上应固定JetPack版本,并在容器或虚拟环境中锁定依赖。

三、TensorRT在边缘推理中的定位

TensorRT不是训练框架,而是推理优化器与运行时。它接收训练好的模型(通常经ONNX中转),做层融合、精度校准、内核自动调优、内存复用和动态批处理,最终生成针对特定GPU架构优化的engine文件。在Jetson上,TensorRT直接调用CUDA和cuDNN,并针对Ampere/Volta等架构的Tensor Core做INT8/FP16加速。

它在整条链路中的位置可以用下面的信号链表示:训练框架导出ONNX → ONNX解析 → TensorRT网络定义 → 优化与校准 → 序列化engine → 运行时反序列化 → 绑定输入输出 → 执行推理。每一步都有对应的工具和参数,例如trtexec用于命令行构建和基准测试,Polygraphy用于调试和精度对比。

Jetson + TensorRT 边缘推理链路全景 训练框架 PyTorch / TF ONNX 导出 opset / 动态轴 TensorRT 构建 层融合 / 精度校准 Engine 序列化 .plan / .engine Jetson 运行时 反序列化 + 推理 JetPack SDK 组件层 L4T / Ubuntu CUDA cuDNN TensorRT Multimedia API DeepStream(可选) 典型部署流程 1 模型导出 2 ONNX 校验 3 TensorRT 构建 4 精度/性能验证 5 集成部署 6 监控调优

四、典型应用场景与部署流程概览

Jetson + TensorRT的典型场景包括:智能安防中的多路视频结构化、工业质检中的缺陷检测、机器人中的视觉SLAM与目标跟踪、零售中的客流分析、无人机中的实时避障等。这些场景的共同点是:低延迟、低功耗、数据不出本地、模型需要持续迭代。

一个可落地的部署流程通常包含六个阶段。第一阶段是模型导出:把PyTorch或TensorFlow模型转为ONNX,注意固定输入尺寸或明确动态轴,并检查算子是否被TensorRT支持。第二阶段是ONNX校验:用onnxsim简化图结构,用Polygraphy检查节点和精度。第三阶段是TensorRT构建:用trtexec或Python API指定精度(FP32/FP16/INT8)、工作空间大小、校准集和动态shape profile。第四阶段是精度与性能验证:对比ONNX Runtime和TensorRT的输出差异,统计mAP或Top-1准确率下降是否在可接受范围,同时记录吞吐和延迟。第五阶段是集成部署:把engine嵌入应用,处理前处理(归一化、resize)、后处理(NMS、解码)和内存拷贝。第六阶段是监控调优:观察GPU利用率、温度、功耗和帧率,必要时调整批大小、精度或模型结构。

实践提示:在Jetson上首次构建engine时,建议先用小尺寸输入和FP16精度跑通链路,再逐步开启INT8校准和动态shape。构建过程可能耗时数分钟到数十分钟,属于正常现象,因为TensorRT正在做内核自动调优。
常见误区:把TensorRT当成“模型转换器”而忽略版本匹配。Jetson上的TensorRT版本由JetPack决定,不能随意升级。若在x86主机上构建engine再拷贝到Jetson,必须保证GPU架构和TensorRT版本一致,否则反序列化会失败。