• 全部
...

NVIDIA 技术博客:借助 NVIDIA Jetson 优化功耗

nvdev 2023-12-14 16:07:42

这篇文章最初发表在 NVIDIA 技术博客上。有关此类的更多内容,请参阅最新的 机器人 新闻和教程。

在使用嵌入式系统时,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:

...全文
给本帖投票
272 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,335

社区成员

发帖
与我相关
我的任务
社区描述
NVIDIA 开发者技术交流
人工智能 企业社区
社区管理员
  • nvdev
  • 活动通知
  • AI_CUDA_Training
加入社区

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部