2. IGX硬件与系统软件栈
IGX 平台并不是“把 Jetson 装进工业机箱”这么简单。它面向的是医疗、工业检测、机器人等需要长期供货、功能安全、集中运维的场景,因此在硬件形态、系统软件、容器运行时和算力调度上都与 Jetson 开发者套件存在明显差异。理解这些差异,是后续在 IGX 上部署 DeepStream 应用的前提。
IGX Orin 开发套件:面向工业的参考平台
IGX Orin 开发套件通常由 IGX Orin 主板、GPU 与 DLA 所在的 SoC 模块、连接载板以及配套的散热与电源组成。与 Jetson Orin 开发者套件相比,它更强调可扩展的 PCIe 通道、工业级接口(如多路 GMSL 摄像头输入、CAN、工业以太网)以及长期供货承诺。开发套件上常见的对外接口包括:多路 CSI/GMSL 摄像头、DisplayPort、USB 3.2、千兆/万兆以太网、M.2 存储与无线模块插槽,以及用于调试的串口和恢复按键。
在软件层面,IGX Orin 开发套件预装的是 IGX OS,而不是 Jetson 上常见的 JetPack。两者共享底层 L4T(Linux for Tegra)内核与驱动,但 IGX OS 额外集成了面向工业部署的组件:安全启动、OTA 更新框架、容器运行时、系统监控与远程管理代理。这意味着在 IGX 上,DeepStream 通常以容器方式运行,而不是直接安装在宿主机上。
Jetson 与 IGX 的差异
从开发者视角看,Jetson 与 IGX 的差异可以归纳为三个维度:定位、软件栈和运维方式。Jetson 面向原型验证与边缘 AI 设备,强调快速上手和丰富的社区资源;IGX 面向工业与医疗产品化,强调可靠性、安全性和可管理性。软件上,Jetson 使用 JetPack SDK,IGX 使用 IGX OS;Jetson 上可以直接 apt 安装 DeepStream,IGX 上则推荐使用 NVIDIA 提供的容器镜像。运维上,Jetson 通常单机管理,IGX 支持通过 fleet 管理工具批量下发容器、监控 GPU/DLA 利用率和温度。
需要特别注意的是,两者在 GPU 与 DLA 的算力分配上并不完全等价。IGX Orin 的 SoC 模块在出厂时可能已经对 GPU、DLA 和视频编解码单元做了不同的功耗与频率配置,开发者需要通过 nvpmodel 和 jetson_clocks 确认当前工作模式,再决定 DeepStream 的推理与解码负载如何分布。
JetPack 与 IGX OS:同源但不同层
JetPack 是 NVIDIA 为 Jetson 提供的 SDK 集合,包含 L4T、CUDA、cuDNN、TensorRT、DeepStream 等组件,通常以刷机镜像或 apt 源的形式交付。IGX OS 则是在 L4T 基础上构建的完整操作系统镜像,除了包含上述 AI 组件外,还集成了容器运行时(containerd 或 Docker)、Kubernetes 相关组件、安全启动链和 OTA 更新机制。
在 IGX 上,推荐的工作方式是:宿主机只保留 IGX OS 和容器运行时,所有 DeepStream 应用、模型和依赖都打包进容器镜像。这样做的好处是版本隔离、可回滚、可批量部署。一个典型的 DeepStream 容器启动命令如下:
docker run --rm -it --runtime nvidia \
--network host \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/nvidia/models:/models \
-e DISPLAY=$DISPLAY \
nvcr.io/nvidia/deepstream:6.3-igx \
deepstream-app -c /models/config.txt
其中 --runtime nvidia 让容器能够访问 GPU 和 DLA,--network host 便于 RTSP 推流和远程调试。实际部署时,还应挂载摄像头设备节点和持久化日志目录。
GPU 与 DLA 算力分配
IGX Orin 的 SoC 中同时存在 GPU 和 DLA(深度学习加速器)。GPU 通用性强,适合运行复杂的检测、分割和跟踪模型;DLA 功耗低、确定性好,适合运行经过量化且算子受支持的推理任务。DeepStream 允许在配置文件中为每个推理组件指定 gpu-id 和 enable-dla,从而把不同模型分配到不同硬件单元。
例如,可以把主检测模型放在 GPU 上,把分类或二级筛选模型放在 DLA 上,以降低 GPU 负载。需要注意的是,DLA 对算子类型和量化方式有约束,INT8 量化模型更容易获得支持。分配后应通过 tegrastats 观察 GPU、DLA 的利用率和功耗,判断是否达到预期。
视频编解码硬件单元
IGX Orin 集成了独立的视频编解码硬件单元(NVENC/NVDEC),支持 H.264、H.265 等常见格式的硬件解码和编码。在 DeepStream 中,解码通常由 nvv4l2decoder 完成,编码由 nvv4l2h264enc 或 nvv4l2h265enc 完成。硬件解码不占用 GPU 的 CUDA 核心,因此可以显著降低多路视频接入时的 GPU 压力。
实际配置时,需要关注解码路数与分辨率的组合。例如,在 1080p30 下,IGX Orin 可以同时硬件解码多路视频流,但具体路数受内存带宽和 NVENC/NVDEC 实例数限制。建议先用 gst-launch-1.0 单独测试解码链路,再接入 DeepStream 完整 pipeline。
上图把 IGX Orin 的硬件算力单元与软件栈放在同一视图中:左侧是视频输入源,中间是 SoC 内的 GPU、DLA 和编解码单元,右侧是 IGX OS 上的容器化软件栈。实际部署时,DeepStream pipeline 会同时用到这三类硬件资源,因此需要根据模型类型和视频路数合理分配。
tegrastats 观察 GPU、DLA、NVDEC 的占用率,再调整 gpu-id 和 enable-dla 配置。如果 DLA 利用率长期为 0,通常说明模型未量化或算子不被支持。