设备监控(Device Monitoring)
本文为NVIDIA-SMI系列命令详解第十二篇-设备监控(1),介绍和演示了nvidia-smi 命令的设备监控选项dmon参数,介绍了如下命令:
nvidia-smi dmon
nvidia-smi dmon 滚动格式展示设备统计信息
GPU 统计数据以滚动格式显示,每个采样间隔一行。 可以根据终端窗口的宽度调整要监控的指标。 监控仅限于最多 4 台设备。 如果未指定设备,则自然枚举下最多支持的前 4 个设备(从 GPU 索引 0 开始)用于监控目的。
设备监控选项,支持的参数列表如下:
[-i | --id]: 驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、
GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID.
如果需要指定多个设备,可以使用逗号","将不同的id隔开。
[-d | --delay]: 采样的时间间隔,单位:秒 [默认:1秒]
[-c | --count]: 运行特定次数的采样,然后退出。
[-s | --select]: 展示一个或者多个采样项 [默认:puc]
支持的采样项如下:
p - 功率和温度
u - GPU 利用率
c - 处理器时钟频率和内存时钟频率
v - 功率上限违规和热上限违规
m - FB 和 Bar1 内存
e - ECC 错误和 PCIe 重放错误
t - PCIe Rx 吞吐量和 Tx 吞吐量
[-o | --options]: 支持一个或者多个如下值:
D - 在滚动输出中包含日期 (YYYYMMDD)
T - 在滚动输出中包含时间 (HH:MM:SS)
[-f | --filename]: 输出日志到特定的文件。
[-h | --help]: 展示帮助信息
注意:
命令行在循环模式下工作,直到按下 Ctrl+C。
支持 x64 和 ppc64 架构的裸机 Linux 下新的 GPU 。
支持 Tesla、GRID、Quadro 系列产品。
支持 Kepler 系列中部分 GeForce 产品。
实验功能。
统计输出信息各字段解释
统计信息以如下CSV格式输出
#Date Time gpu pwr gtemp mtemp sm mem enc dec mclk pclk pviol tviol fb bar1 sbecc dbecc pci rxpci txpci
#YYYYMMDD HH:MM:SS Idx W C C % % % % MHz MHz % bool MB MB errs errs errs MB/s MB/s
20220803 11:52:16 0 59 28 45 0 0 0 0 1593 1155 0 0 0 1 0 0 0 0 0
对应解释如下表所示:
采样项 | 含义 | 单位 | 示例 |
---|---|---|---|
Date | 日期 | YYYYMMDD | 20220803 |
Time | 时间 | HH:MM:SS | 11:52:16 |
gpu | GPU id | Idx | 0 |
pwr | GPU 功率 | W | 59 |
gtemp | GPU 温度 | C | 28 |
mtemp | 内存温度 | C | 45 |
sm | SM 流式多处理器利用率 | % | 0 |
mem | 内存利用率 | % | 0 |
enc | 视频编码使用率 | % | 0 |
dec | 视频解码使用率 | % | 0 |
mclk | 内存时钟频率 | MHz | 1593 |
pclk | 处理器时钟频率 | MHz | 1155 |
pviol | 功率上限违规 | % | 0 |
tviol | 热上限违规 | bool | 0 |
fb | 板载帧缓冲内存信息 | MB | 0 |
bar1 | fb内存映射信息 | MB | 1 |
sbecc | 单位ecc错误数 | errs | 0 |
dbecc | 双位ecc错误数 | errs | 0 |
pci | pci错误数 | errs | 0 |
rxpci | pci设备接收数据速率 | MB/s | 0 |
txpci | pci设备发送数据速率 | MB/s | 0 |
各参数详解
-i 指定GPU
id是驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID。 如果需要指定多个设备,可以使用逗号”,”将不同的id隔开。
运行示例
查看设备id为0的设备统计信息 运行示例:
nvidia-smi dmon -i 0
可以看到,需要 Ctrl + C 才能打断,否则会一直采样。
GPU Index 为 0 的卡 功率 59W。GPU温度 28度,显存温度45度,sm 流式多处理器 利用率 0%。 显存利用率 0%。编码率 0%,解码率 0%。 内存时钟 1593 MHz, 处理器时钟 1155 MHz。
-d 指定采样时间间隔(默认1秒)
指定采样时间间隔,默认1秒采样一次。
运行示例
设置采样时间间隔为5秒
nvidia-smi dmon -i 0 -d 5 -o T
可以看到,采样时间间隔变为5秒一次。
-c 执行指定次数监控循环后退出
运行示例
展示设备为0的GPU的 temp、pwrDraw 信息 5 次之后退出
nvidia-smi dmon -i 0 -c 5 -o T
可以看到,加上-c 5参数之后,运行5次采样后程序退出,不会像之前的命令需要执行 Ctrl + C 后才能退出。
-s 展示特定的采样项(默认值puc)
支持的采样项:
-
p – 功率和温度
-
u – GPU 利用率
-
c – 处理器时钟频率和内存时钟频率
-
v – 功率上限违规和热上限违规
-
m – FB 和 Bar1 内存
-
e – ECC 错误和 PCIe 重放错误
-
t – PCIe Rx 吞吐量和 Tx 吞吐量
-
运行示例
展示设备为0的GPU的 所有 支持 的 信息
nvidia-smi dmon -i 0 -c 5 -s pucvmet
可以看到,展示了所有的支持的采样项。
-o 输出日期和时间选项
在查询结果中输出时间和日期选项:
-
D – 在滚动输出中包含日期 (YYYYMMDD)
-
T – 在滚动输出中包含时间 (HH:MM:SS)
运行示例
输出滚动信息时展示时间和日期
nvidia-smi dmon -i 0 -c 5 -o DT
-f 将查询输出重定向到指定文件以代替默认标准输出
将查询输出重定向到指定文件以代替默认标准输出。指定的文件将被覆盖。
运行示例
设备id为0的GPU统计信息输出到文件out.log中
nvidia-smi dmon -i 0 -f out.log
可以看到,必须按住 Ctrl + C 才能终止命令,否则命令会一直执行。
out.log文件中的内容与控制台输出的一致。
-h 打印帮助信息
运行示例
展示nvidia-smi stats的帮助信息
nvidia-smi dmon -h
对应内容如下:
root@YellowMeta-A100:~# nvidia-smi dmon -h
GPU statistics are displayed in scrolling format with one line
per sampling interval. Metrics to be monitored can be adjusted
based on the width of terminal window. Monitoring is limited to
a maximum of 4 devices. If no devices are specified, then up to
first 4 supported devices under natural enumeration (starting
with GPU index 0) are used for monitoring purpose.
It is supported on Tesla, GRID, Quadro and limited GeForce products
for Kepler or newer GPUs under x64 and ppc64 bare metal Linux.
Usage: nvidia-smi dmon [options]
Options include:
[-i | --id]: Comma separated Enumeration index, PCI bus ID or UUID
[-d | --delay]: Collection delay/interval in seconds [default=1sec]
[-c | --count]: Collect specified number of samples and exit
[-s | --select]: One or more metrics [default=puc]
Can be any of the following:
p - Power Usage and Temperature
u - Utilization
c - Proc and Mem Clocks
v - Power and Thermal Violations
m - FB and Bar1 Memory
e - ECC Errors and PCIe Replay errors
t - PCIe Rx and Tx Throughput
[-o | --options]: One or more from the following:
D - Include Date (YYYYMMDD) in scrolling output
T - Include Time (HH:MM:SS) in scrolling output
[-f | --filename]: Log to a specified file, rather than to stdout
[-h | --help]: Display help information