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 Nano | Maxwell | 约0.5 TFLOPS FP16 | 4GB LPDDR4 | 5–10W | 教学、轻量分类 |
| Xavier NX | Volta | 约21 TOPS | 8/16GB LPDDR4x | 10–20W | 单路视觉检测 |
| AGX Xavier | Volta | 约32 TOPS | 32GB LPDDR4x | 10–30W | 机器人、多传感器 |
| Orin Nano | Ampere | 约40 TOPS | 8GB LPDDR5 | 7–15W | 入门级边缘AI |
| AGX Orin | Ampere | 约275 TOPS | 32/64GB LPDDR5 | 15–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的典型场景包括:智能安防中的多路视频结构化、工业质检中的缺陷检测、机器人中的视觉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利用率、温度、功耗和帧率,必要时调整批大小、精度或模型结构。