Jetson 上的程序在实验室测得好好的,帧率稳定、延迟可控;带到现场跑了半小时,识别帧率开始下降,延迟越来越大。很多时候问题不在程序本身,而在功耗模式和温度:模组为了控制功耗和温度,自动降低了运行频率。下面讲 Jetson 性能管理的通用知识,未经实机验证,具体模式和参数以所用模组和 JetPack 版本的文档为准。
【功耗模式决定上限】 Jetson 模组提供多种功耗模式,每种模式限定了可用的 CPU 核心数、CPU 和 GPU 的最高频率等。可以用 nvpmodel 查看和切换功耗模式。 官网方案里常见的算力模组有 Jetson Orin NX 16GB 和 Jetson AGX Orin 64GB。同一模组在不同功耗模式下,性能差别可能很大。部署前要确认当前使用的是哪种模式,测试时的模式和现场运行的模式要一致。
【频率会动态变化】 即使在同一功耗模式下,CPU 和 GPU 的频率也会根据负载动态调整。测试性能时,可以用 jetson_clocks 把频率固定在当前模式的上限,排除频率波动的影响。但要注意,固定高频会增加功耗和发热。
【温度降频】 模组温度过高时,会自动降低频率以保护硬件,这就是温度降频。在密闭的上装外壳里,散热条件远不如实验室的开放桌面,持续高负载运行时更容易出现。 降频的表现是:性能逐渐下降,而不是突然崩溃,因此很容易被误认为是程序的问题。
【怎么监控】 可以用 tegrastats 或 jtop 一类工具实时查看 CPU、GPU 的使用率、频率、温度和功耗。现场部署时,建议把这些数据定期记录下来,和程序的帧率、延迟放在一起分析。 如果发现频率下降和温度上升同时出现,基本可以确定是温度降频。
【散热的改进】 上装外壳的散热设计要考虑最坏情况:夏季户外、阳光直射、持续满负载。常见手段包括使用带风扇的散热器、在外壳上开设风道、使用导热垫把热量传到金属外壳上。 风道开口要注意防尘防水,机器狗行走时会扬起灰尘,进风口可以加过滤网。
【软件上节省算力】 算力不够时,可以在软件上做文章:降低不必要的处理频率,比如识别不必每帧都做;使用硬件解码和硬件加速的推理引擎;把模型量化到较低精度。这些措施既能减轻算力压力,也能减少发热。
【上线前的长时测试】 性能问题往往要运行一段时间后才出现,所以上线前要做长时间的满负载测试。把上装装进实际使用的外壳,在接近现场的环境温度下,持续运行全部程序,记录频率、温度、帧率和延迟的变化曲线。条件允许时,在高温环境下测试,确认最坏情况下的性能是否满足要求。机器狗上装的散热改进是否有效,也要通过这样的测试来验证。 还有一个容易忽略的因素是电源。部分 Jetson 模组在供电不足时也会主动降低频率,表现和温度降频类似。监控时同时记录输入电压,可以把这两种情况区分开。
【小结】 Jetson 性能下降,常常是功耗模式和温度降频造成的。确认功耗模式,监控频率和温度,改善散热,并在软件上节省算力,才能保证程序在现场长时间稳定运行。机器狗上装的散热设计和算力规划,需要在方案阶段一起考虑。
机器人上装定制与集成:www.yuanzhirobot.com/zh/service/… 本文部分内容由 AI 辅助生成。