nvidia-smi 命令详解
Posted 蒙娜丽莎的Java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nvidia-smi 命令详解相关的知识,希望对你有一定的参考价值。
nvidia-smi 命令详解
简介
nvidia-smi - NVIDIA System Management Interface program
nvidia smi(也称为NVSMI)为来自 Fermi 和更高体系结构系列的 nvidia Tesla、Quadro、GRID 和 GeForce 设备提供监控和管理功能。GeForce Titan系列设备支持大多数功能,为GeForce品牌的其余部分提供的信息非常有限。NVSMI是一种跨平台工具,支持所有标准NVIDIA驱动程序支持的Linux发行版,以及从Windows Server 2008 R2开始的64位版本的Windows。
详细的信息可以去手册中查找:man nvidia-smi
。
nvidia-smi 命令
直接在命令行输入 nvidia-smi
命令应该是各位炼丹师再熟悉不过的命令了。
注意:建议使用
watch -n 0.5 nvidia-smi
来动态地观察 GPU 的状态。
通过 nvidia-smi 命令,我们会得到这样一个信息丰富的页面:
Tue Nov 9 13:47:51 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44 Driver Version: 495.44 CUDA Version: 11.5 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:17:00.0 Off | N/A |
| 62% 78C P2 155W / 170W | 10123MiB / 12051MiB | 100% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce ... Off | 00000000:65:00.0 Off | N/A |
|100% 92C P2 136W / 170W | 10121MiB / 12053MiB | 99% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 2 NVIDIA GeForce ... Off | 00000000:B5:00.0 Off | N/A |
| 32% 34C P8 12W / 170W | 5MiB / 12053MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 3 NVIDIA GeForce ... Off | 00000000:B6:00.0 Off | N/A |
| 30% 37C P8 13W / 170W | 5MiB / 12053MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1258 G /usr/lib/xorg/Xorg 6MiB |
| 0 N/A N/A 10426 C ...a3/envs/JJ_env/bin/python 10111MiB |
| 1 N/A N/A 1258 G /usr/lib/xorg/Xorg 4MiB |
| 1 N/A N/A 10427 C ...a3/envs/JJ_env/bin/python 10111MiB |
| 2 N/A N/A 1258 G /usr/lib/xorg/Xorg 4MiB |
| 3 N/A N/A 1258 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------+
其中显存占用和 GPU 利用率当然是我们最常来查看的参数,但是在一些情况下(比如要重点监控 GPU 的散热情况时)其他参数也很有用,笔者简单总结了一下该命令输出的各个参数的含义如下图:
可以看到其中各个位置的对应含义在输出本身中其实都已经指出了(蓝框),红框则指出了输出各个部分的含义,大部分输出的作用一目了然,这里笔者将其中几个不那么直观的参数简单整理一下:
- Fan:从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。
- Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
- Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
- Disp.A:Display Active,表示GPU的显示是否初始化。
- Compute M:是计算模式。
- Volatile Uncorr. ECC:是否开启 ECC 纠错。
- type:进程类型。C 表示计算进程,G 表示图形进程,C+G 表示都有。
nvidia-smi 命令的其他参数
除了直接运行 nvidia-smi
命令之外,还可以加一些参数,来查看一些本机 Nvidia GPU 的其他一些状态。下面笔者简单介绍几个常用的参数,其他的有需要可以去手册中查找:man nvidia-smi
。
-L
-L
参数显示连接到系统的 GPU 列表。
nvidia-smi -L
# 输出:
GPU 0: NVIDIA GeForce RTX 3060 (UUID: GPU-55275dff-****-****-****-6408855fced9)
GPU 1: NVIDIA GeForce RTX 3060 (UUID: GPU-0a1e7f37-****-****-****-df9a8bce6d6b)
GPU 2: NVIDIA GeForce RTX 3060 (UUID: GPU-38e2771e-****-****-****-d5cbb85c58d8)
GPU 3: NVIDIA GeForce RTX 3060 (UUID: GPU-8b45b004-****-****-****-46c05975a9f0)
GPU UUID
:此值是GPU的全球唯一不可变字母数字标识符。它与主板上的物理标签无关。
-i
-i
参数指定某个 GPU,多用于查看 GPU 信息时指定其中一个 GPU。
-q
-q
参数查看 GPU 的全部信息。可通过 -i
参数指定查看某个 GPU 的参数。
如:
nvidia-smi -i 0 -q
输出太长了,笔者这里就不列了,大家可以自己试一下,是很完整的信息。
topo
topo
展示多GPU系统的拓扑连接信息,通常配合 -m
参数即 nvidia-smi topo -m
,其他参数可自行查阅。
输出如下,这里用代码块没法对齐,就直接贴图了:
这里只介绍了几个笔者常用的参数,其他参数请自行查阅手册吧。
NVIDIA-SMI系列命令总结
NVIDIA-SMI系列命令总结
Michael丶Bear 2018-07-03 19:48:12 46993 收藏 58
展开
1 NVIDIA-SMI介绍
nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从WindowsServer 2008 R2开始的64位的系统。该工具是N卡驱动附带的,只要安装好驱动后就会有它。
Windows下程序位置:C:Program FilesNVIDIACorporationNVSMI vidia-smi.exe。Linux下程序位置:/usr/bin/nvidia-smi,由于所在位置已经加入PATH路径,可直接输入nvidia-smi运行。
2 NVIDIA-SMI命令系列详解
2.1 nvidia-smi
显示所有GPU的当前信息状态
显示的表格中:
Fan: 风扇转速(0%--100%),N/A表示没有风扇
Temp: GPU温度(GPU温度过高会导致GPU频率下降)
Perf: 性能状态,从P0(最大性能)到P12(最小性能)
Pwr: GPU功耗
Persistence-M: 持续模式的状态(持续模式耗能大,但在新的GPU应用启动时花费时间更少)
Bus-Id: GPU总线,domain:bus:device.function
Disp.A: Display Active,表示GPU的显示是否初始化
Memory-Usage:显存使用率
Volatile GPU-Util:GPU使用率
ECC: 是否开启错误检查和纠正技术,0/DISABLED, 1/ENABLED
Compute M.: 计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
附加选项:
nvidia-smi –i xxx
指定某个GPU
nvidia-smi –l xxx
动态刷新信息(默认5s刷新一次),按Ctrl+C停止,可指定刷新频率,以秒为单位
nvidia-smi –f xxx
将查询的信息输出到具体的文件中,不在终端显示
2.2 nvidia-smi -q
查询所有GPU的当前详细信息
附加选项:
nvidia-smi –q –u
显示单元而不是GPU的属性
nvidia-smi –q –i xxx
指定具体的GPU或unit信息
nvidia-smi –q –f xxx
将查询的信息输出到具体的文件中,不在终端显示
nvidia-smi –q –x
将查询的信息以xml的形式输出
nvidia-smi -q –d xxx
指定显示GPU卡某些信息,xxx参数可以为MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER,CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT,ACCOUNTING
nvidia-smi –q –l xxx
动态刷新信息,按Ctrl+C停止,可指定刷新频率,以秒为单位
nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version--format=csv
选择性查询选项,可以指定显示的属性选项
可查看的属性有:timestamp,driver_version,pci.bus,pcie.link.width.current等。(可查看nvidia-smi--help-query–gpu来查看有哪些属性)
2.3 设备修改选项
可以手动设置GPU卡设备的状态选项
nvidia-smi –pm 0/1
设置持久模式:0/DISABLED,1/ENABLED
nvidia-smi –e 0/1
切换ECC支持:0/DISABLED, 1/ENABLED
nvidia-smi –p 0/1
重置ECC错误计数:0/VOLATILE, 1/AGGREGATE
nvidia-smi –c
设置计算应用模式:0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
nvidia-smi –r
GPU复位
nvidia-smi –vm
设置GPU虚拟化模式
nvidia-smi –ac xxx,xxx
设置GPU运行的工作频率。e.g. nvidia-smi –ac2000,800
nvidia-smi –rac
将时钟频率重置为默认值
nvidia-smi –acp 0/1
切换-ac和-rac的权限要求,0/UNRESTRICTED, 1/RESTRICTED
nvidia-smi –pl
指定最大电源管理限制(瓦特)
nvidia-smi –am 0/1
启用或禁用计数模式,0/DISABLED,1/ENABLED
nvidia-smi –caa
清除缓冲区中的所有已记录PID,0/DISABLED,1/ENABLED
2.4 nvidia-smi dmon
设备监控命令,以滚动条形式显示GPU设备统计信息。
GPU统计信息以一行的滚动格式显示,要监控的指标可以基于终端窗口的宽度进行调整。 监控最多4个GPU,如果没有指定任何GPU,则默认监控GPU0-GPU3(GPU索引从0开始)。
附加选项:
nvidia-smi dmon –i xxx
用逗号分隔GPU索引,PCI总线ID或UUID
nvidia-smi dmon –d xxx
指定刷新时间(默认为1秒)
nvidia-smi dmon –c xxx
显示指定数目的统计信息并退出
nvidia-smi dmon –s xxx
指定显示哪些监控指标(默认为puc),其中:
p:电源使用情况和温度(pwr:功耗,temp:温度)
u:GPU使用率(sm:流处理器,mem:显存,enc:编码资源,dec:解码资源)
c:GPU处理器和GPU内存时钟频率(mclk:显存频率,pclk:处理器频率)
v:电源和热力异常
m:FB内存和Bar1内存
e:ECC错误和PCIe重显错误个数
t:PCIe读写带宽
nvidia-smi dmon –o D/T
指定显示的时间格式D:YYYYMMDD,THH:MM:SS
nvidia-smi dmon –f xxx
将查询的信息输出到具体的文件中,不在终端显示
2.5 nvidia-smi pmon
进程监控命令,以滚动条形式显示GPU进程状态信息。
GPU进程统计信息以一行的滚动格式显示,此工具列出了GPU所有进程的统计信息。要监控的指标可以基于终端窗口的宽度进行调整。 监控最多4个GPU,如果没有指定任何GPU,则默认监控GPU0-GPU3(GPU索引从0开始)。
附加选项:
nvidia-smi pmon –i xxx
用逗号分隔GPU索引,PCI总线ID或UUID
nvidia-smi pmon –d xxx
指定刷新时间(默认为1秒,最大为10秒)
nvidia-smi pmon –c xxx
显示指定数目的统计信息并退出
nvidia-smi pmon –s xxx
指定显示哪些监控指标(默认为u),其中:
u:GPU使用率
m:FB内存使用情况
nvidia-smi pmon –o D/T
指定显示的时间格式D:YYYYMMDD,THH:MM:SS
nvidia-smi pmon –f xxx
将查询的信息输出到具体的文件中,不在终端显示
————————————————
版权声明:本文为CSDN博主「Michael丶Bear」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/handsome_bear/java/article/details/80903477
以上是关于nvidia-smi 命令详解的主要内容,如果未能解决你的问题,请参考以下文章