当前位置: 首页 > news >正文

【NVIDIA】如何使用nvidia-smi命令管理和监控GPU

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G/6G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解

文章目录

  • 如何使用nvidia-smi命令管理和监控GPU
    • 一、nvidia-smi 有什么用?
      • 1.1 检测GPU性能
      • 1.2 GPU硬件参数配置
      • 1.3 GPU故障排除
    • 二、nvidia-smi 使用介绍
      • 2.1 查看系统中所有的GPU资源
      • 2.2 查询GPU的详细信息
      • 2.3 开启 Persistence 模式
      • 2.4 调整GPU时钟
      • 2.5 调整GPU功率

如何使用nvidia-smi命令管理和监控GPU

       当前各行各业都离不开GPU的加持,随着6G的研究进展,未来6G会是一个技术大融合的系统,其中就包括算力网络、AI、通信感知等对算力需求比较大的服务。下面我们学习一下GPU的管理和监控方法。

一、nvidia-smi 有什么用?

nvidia-smi 提供了GPU技术参数、使用温度和电源管理的重要信息。

1.1 检测GPU性能

       nvidia-smi 最重要的功能是实时监控GPU性能。这包括跟踪GPU利用率,它告诉我们系统当前使用了多少GPU计算能力。此外,它还监控内存使用情况,这是了解GPU的视频RAM(VRAM)应用程序占用多少空间的基本指标,这在工作负载管理和优化中至关重要。此外,nvidia-smi 提供实时温度读数,确保GPU在安全的热极限内运行。在涉及持续、密集使用GPU的场景中,这方面尤其重要,因为它有助于防止热节流并保持最佳性能。

1.2 GPU硬件参数配置

       nvidia-smi 可以配置硬件参数,它允许我们查询各种GPU属性,如时钟速度、功耗和支持的特性。如果我们正在为特定任务优化系统,无论是在计算密集型工作负载中最大化性能,还是在长时间运行的任务中确保能效,这些信息都是至关重要的。此外,nvidia-smi 还提供了调整某些设置的能力,如功率限制和风扇速度,如果我们想根据特定要求或环境条件对硬件进行微调,则nvidia-smi 为我们提供了一定程度的控制能力。

1.3 GPU故障排除

       在解决GPU问题时,nvidia-smi 是一个宝贵的资产。它提供了对GPU状态的详细解释,这对诊断这些问题至关重要。例如,如果GPU表现不佳,nvidia-smi 可以帮助我们识别问题是否与过热、内存使用过多或GPU使用瓶颈有关。该工具还可以通过报告GPU性能中的错误和不规则情况来帮助识别失败的硬件组件。


二、nvidia-smi 使用介绍

2.1 查看系统中所有的GPU资源

# -L or –list-gpus Option$ nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 3070 SUPER (UUID: GPU-fb087aea-1cd3-0524-4f53-1e58a5da7a3c)

它对于快速识别当前的GPU特别有用,特别是在具有多个GPU的系统中。

2.2 查询GPU的详细信息

例如,

$ nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv name, pci.bus_id, vbios_version 
NVIDIA GeForce RTX 2060 SUPER, 00000000:03:00.0, 90.06.44.80.98

您可以通过命令

nvidia-smi --help-query-gpu

来获得查询参数的完整列表。在向查询添加额外参数时,确保查询选项之间没有空格。下面是一些常用的查询参数:

查询参数参数解释
timestamp查询的时间戳,格式为“YYYY/MM/DD HH:MM:SS.msec”
gpu_name 或者 nameGPU的正式产品名称。这是一个字母数字字符串。适用于所有产品
gpu_bus_id 或者 pci.bus_idPCI总线ID,格式为“domain🚌device.function”,十六进制
vbios_versionGPU板卡的BIOS版本
driver_version安装的NVIDIA显示驱动程序的版本。这是一个字母数字字符串
pstate当前GPU的性能状态。取值范围为P0(最高性能)~ P12(最低性能)
pcie.link.gen.max最大的PCI-E链路生成可能与此GPU和系统配置有关系。例如,如果GPU支持的PCIe生成高于系统支持的PCIe生成,则报告系统PCIe生成
pcie.link.gen.current当前PCI-E链路的生成。当GPU不使用时,这些可能会减少
temperature.gpu核心GPU温度,单位摄氏度
utilization.gpu在过去的采样周期内,GPU上一个或多个内核执行的时间百分比。根据产品的不同,取样时间可能在1秒到1/6秒之间
utilization.memory在过去的样本时间段内,全局(设备)内存被读取或写入的时间百分比。根据产品的不同,取样时间可能在1秒到1/6秒之间
memory.totalGPU内存总数
memory.free总空闲内存数
memory.used分配给活动上下文的总内存数
$ nvidia-smi --query-gpu=timestamp,name,pci.bus_id,driver_version,pstate,pcie.link.gen.max,pcie.link.gen.current,temperature.gpu,utilization.gpu,utilization.memory,memory.total,memory.free,memory.used --format=csv -l 5
timestamp, name, pci.bus_id, driver_version, pstate, pcie.link.gen.max, pcie.link.gen.current, temperature.gpu, utilization.gpu [%], utilization.memory [%], memory.total [MiB], memory.free [MiB], memory.used [MiB]
2024/01/31 07:52:12.927, NVIDIA GeForce RTX 2060 SUPER, 00000000:03:00.0, 525.78.01, P0, 3, 3, 35, 0 %, 0 %, 8192 MiB, 7974 MiB, 0 MiB
2024/01/31 07:52:17.929, NVIDIA GeForce RTX 2060 SUPER, 00000000:03:00.0, 525.78.01, P0, 3, 3, 36, 0 %, 0 %, 8192 MiB, 7974 MiB, 0 MiB
2024/01/31 07:52:22.930, NVIDIA GeForce RTX 2060 SUPER, 00000000:03:00.0, 525.78.01, P0, 3, 3, 37, 0 %, 0 %, 8192 MiB, 7974 MiB, 0 MiB

2.3 开启 Persistence 模式

       除非你为驱动程序开启了持久化模式(Persistence Mode,PM),否则以下任何关于时钟和电源的设置都会在程序运行之间重置。还要注意,如果启用PM模式,nvidia-smi 命令运行得更快。

$ nvidia-smi -pm 1
Enabled persistence mode for GPU 00000000:03:00.0.
All done.

上面的命令使时钟、电源和其他设置在程序运行、驱动程序调用时保持一致。

2.4 调整GPU时钟

命令命令解释
nvidia-smi -ac查看支持的时钟频率
nvidia-smi –q –d SUPPORTED_CLOCKS设置支持的时钟频率
nvidia-smi -q –d CLOCK查看当前的时钟
nvidia-smi --auto-boost-default=ENABLED -i 0开启 boosting GPU 时钟(K80 以及之后的版本支持)
nvidia-smi --rac重置为基本时钟频率

2.5 调整GPU功率

命令命令解释
nvidia-smi –pl N设置功率上限(GPU将使用的最大瓦数)
nvidia-smi -pm 1开启持久化模式
nvidia-smi stats -i -d pwrDraw提供对详细统计信息(如功率)的持续监控
nvidia-smi --query-gpu=index,timestamp,power.draw,clocks.sm,clocks.mem,clocks.gr --format=csv -l 1连续提供时间戳、功率和时钟信息

调整功率限制有助于平衡性能、能耗和发热量。首先,我们可以看到当前的功率限制:

$ nvidia-smi -q -d POWER==============NVSMI LOG==============Timestamp                                 : Wed Jan 31 08:58:41 2024
Driver Version                            : 525.78.01
CUDA Version                              : 12.0Attached GPUs                             : 1
GPU 00000000:03:00.0Power ReadingsPower Management                  : SupportedPower Draw                        : 10.59 WPower Limit                       : 175.00 WDefault Power Limit               : 175.00 WEnforced Power Limit              : 175.00 WMin Power Limit                   : 125.00 WMax Power Limit                   : 175.00 WPower SamplesDuration                          : 0.14 secNumber of Samples                 : 8Max                               : 28.37 WMin                               : 10.30 WAvg                               : 13.28 W

上面的命令显示当前功率使用情况和功率管理限制,现在让我们改变功率限制:

$ nvidia-smi -pl 150
Power limit for GPU 00000000:03:00.0 was set to 150.00 W from 175.00 W.
All done.

值得注意的是,最大和最小功率限制在不同的GPU模型之间是不同的。此外,在调整GPU设置,特别是功率限制时,我们必须谨慎使用超频。将GPU推向极限可能会导致不稳定或损坏。



在这里插入图片描述


http://www.mrgr.cn/news/40415.html

相关文章:

  • Redis-持久化机制
  • 平衡二叉搜索树删除的实现
  • 【区别】git restore --staged <文件> 和 git reset HEAD <文件> 都可以用于取消已暂存的文件
  • IOT平台颜值天花板?延凡科技物联网平台让人惊叹不已
  • GUI
  • C++ 语言特性04 - decltype关键字
  • 设置hive本地模式
  • JS进阶 1——作用域、解构、箭头函数
  • 【Orange Pi 5嵌入式应用编程】-用户空间UART通信
  • SupplierbasicController
  • `git restore` 和 `git checkout` 都可以用于丢弃工作区的改动,但它们有一些区别
  • UE4完整教程 UE4简介 UE4学习攻略及文件格式
  • 开放式耳机究竟是不是智商税?百元蓝牙耳机2024推荐指南
  • 低空经济时代来临,挑战和机遇详细分析
  • 64 注意力机制_by《李沐:动手学深度学习v2》pytorch版
  • Leetcode 611. 有效三角形的个数
  • 小学一年级教材识字表,写字表,笔画名称表,偏旁名称表大全,方便大家学习打印!
  • 关于malloc,calloc,realloc
  • MySQL中的InnoDB存储引擎
  • AMD CDNA™2 GPU 中的寄存器压力