机器人

借助 NVIDIA Jetson 优化功耗

 

在使用嵌入式系统时,Jetson modules 是非常重要的。此外,您必须根据功耗预算和计算资源来优化应用程序。为了避免性能甚至是热调节问题,监控这些资源变得非常重要。

Jetson 模组采用 GPU、CPU 和各种 AI 加速器设计,还具有高效电源管理集成电路 (PMIC)、电压调节器和功率树,可优化能效。 NVIDIA 提供多种工具和资源,可帮助您利用功率架构并优化资源使用:

  • 各种电源模式
  • 电源、散热和电气管理功能
  • 用于监控功率和散热状态的 Jetson Power GUI
  • Tegrastats,用于提供与模块相关的命令行统计数据
  • JTOP

Jetson 功率模式

每个 Jetson 模块都支持多个预配置功率模式,这些模式针对特定功率预算进行了优化:10 瓦、15 瓦、30 瓦等。对于每个功率预算,在资源利用率方面都有各种可能的配置。

这些电源模式设置为 nvpmodel。您可以选择使用其中一种预配置模式,也可以创建根据您的要求调整的自定义功率模式。nvpmodel 配置支持一定数量的在线 GPU TPC、CPU、DLA 和 PVA 核心,以及一定的频率,以将模块保持在一定的功率预算内。

MAXN 模式还可用作无限制功率模式。它可为各种处理器和引擎启用最大数量的核心和时钟频率,然后可以调整这些核心和频率,以创建平衡性能和功耗的自定义功率模式。

电源、散热和电气管理功能

Jetson 提供各种电源、散热和电气管理功能:

  • 时钟门控
  • 电源门控
  • 动态电压频率调整
  • 深度睡眠 (SC7) 模式
  • 空闲功率模式

有关更多信息,请参阅 Jetson Linux 开发者指南 中的 Supported Modes and Power Efficiency

Jetson Power GUI

NVIDIA 通过 JetPack 提供了许多工具,可以帮助您管理散热和电源。其中一个工具是 Jetson Power GUI,它作为 JetPack 镜像的一部分安装。

通过使用 Jetson Power GUI,您可以监控 Jetson 主板的功率和散热状态。在选项卡中,您可以跟踪 CPU 和 GPU 的使用情况以及设备温度。通过实时监控,您可以快速识别可能导致性能受限的任何性能瓶颈或功耗过高。

借助 Jetson Power GUI,您可以调整功率模式,从而优化性能和功耗之间的权衡。您可以根据所使用的 Jetson 主板选择预定义的功率模式之一。

Screenshot shows information about GPU/CPU utilization as well as power metrics.
图 1.Jetson Power 启动页面

借助 Power GUI 工具,您还可以在特定持续时间内将与电源相关的信息记录到日志文件中。这对于捕获和分析特定任务或特定持续时间期间的行为非常有用。例如,您可以在启动后的前 3 分钟内捕获有关 Jetson 性能的信息。

Screenshot of example log file shows different CPU load over a period of time.
图 2.Power GUI 中的日志文件示例

我们的 图形 … … 按钮提供了数据可视化功能,因此您可以绘制与电源相关的实时信息。捕获的日志文件还可用于绘制图形,帮助您更简单地可视化系统的执行情况。

Screenshot of power channels for plotting graphs shows how to select different information for capturing in the graph.
图 3.图中通道选择
Screenshot shows graphs for GPU, CPU, SOC, CV, VDDRQ, and SYS5V.
图 4.通过 Jetson Power GUI 绘制的示例图形

特格拉斯塔

Tegrastats 是 NVIDIA 提供的命令行实用程序,可报告 Jetson 平台上的内存和处理器使用情况。此实用程序随 JetPack 一起提供,可以在<top>/core/utils/tegrastats.

Tegrastats 可帮助您深入了解 CPU、GPU 和内存等多个使用指标。此外,您还可以监控功耗并实时更新功耗。这些指标对于了解系统性能至关重要。

Tegrastats 还提供有关热行为的信息,例如 CPU 和 GPU 的工作温度。这可以帮助您防止热调节。

用途

要在 Jetson 上使用 Tegrastats 实用程序,请使用以下命令。

在前台运行以下命令:

$ tegrastats —interval <int>

在此命令中,<int>是日志打印之间的间隔(以毫秒为单位)。默认情况下,Tegrastats 每秒更新一次统计数据。

在后台运行以下命令:

$ tegrastats —interval <int> -logfile <out_file> &

在此命令中,<out_file>是 Tegrastats 将日志打印写入的输出文件的路径名。

以下是 Tegrastats 打印样本:

RAM 1545/31919MB (lfb 7400x4MB) SWAP 0/15959MB (cached 0MB) CPU
[0%@1190,0%@1190,0%@1190,0%@1190,0%@1190,0%@1190,0%@1190,0%@1190]
EMC_FREQ 1%@408 GR3D_FREQ 0%@318 VIC_FREQ 0%@115 APE 150 MTS fg 0% bg 0%
AO@38C GPU@39.5C Tdiode@43.25C PMIC@100C AUX@38.5C CPU@39.5C
thermal@38.8C Tboard@39C GPU 0/0 CPU 468/468 SOC 937/937 CV 0/0 VDDRQ
312/234 SYS5V 1458/1458

Tegrastats 还可以集成到脚本或应用程序中,以捕获系统统计数据,从而实现更多自动化场景。

JTOP (Jetson 统计)

JTOP 是一种用户友好型方式,用于监控和控制 Jetson 上的资源。它可以帮助您可视化和理解应用程序中的各种瓶颈。例如,它显示应用程序是否占用大量内存操作,或者应用程序未使用 Jetson 模块中的硬件加速引擎。通过这种方式,JTOP 可实现针对 Jetson 模块优化的更高效、更精简的应用程序。

Screenshot displays the JTOP screen where you can visualize the current status of your device in terms of power and resource consumption.
图 5.JTOP 启动屏幕

JTOP 专为监控和管理 NVIDIA Jetson 模组而设计:

  • NVIDIA Orin
  • NVIDIA Xavier
  • NVIDIA Nano
  • NVIDIA TX

它提供有关系统性能的实时更新,使您能够分析 CPU 和 GPU 的使用情况、工作温度、内存使用情况和其他相关信息。

借助 JTOP,可以在 GUI 中访问这些信息,以更好地可视化信息。这样,它就提供了一种跟踪系统指标和性能数据的便捷方法,尤其是在运行繁重的 AI 工作负载时。

JTOP 还提供了调整系统性能的功能。您可以选择希望 Jetson 设备在其中运行的电源模式,以及控制风扇转速。这有助于优化系统性能和散热。

Screenshot shows memory monitor tab from the JTOP GUI that gives details about memory usage from the Jetson system.
图 6.JTOP 内存监视器

JTOP 对于在功率预算的情况下构建系统特别有用,但仍然会占用尽可能高的性能。要安装它,请使用点:

$ sudo apt update 
$ sudo apt-get install python3-pip
$ sudo pip install -u jetson-stats

使用桌面命令:

$ jtop

JTOP 工具还可用作具有 API 的 Python 库,使您能够在脚本中轻松包含 JTOP 函数。

from jtop import jtop

with jtop() as jetson:
	while jetson.ok():
		#read jetson stats
		print(jetson.stats)

有关更多信息,请观看以下 JetsonHacks 视频。

视频 1.JTOP:Jetson 专业人士使用的工具。你用了吗?

立即开始优化您的功率

我们的 NVIDIA Jetson 平台 不断提高机器人和边缘 AI 的边缘推理性能。在大多数边缘 AI 应用程序中,遵循功率预算是一个重要因素。借助 NVIDIA 工具,您可以监控系统性能并对自定义功率配置文件进行建模。

有关更多信息,请参阅以下资源:

借助本文中提到的所有工具,您可以轻松为应用创建节能高效且性能优化的系统。

 

Tags