【深度学习】nvidia-smi 各参数意义


前言

一个服务器遇到问题了,GPU Fan 和 Perf 两个都是err。之前没遇到这个问题,所以这次机会要搞搞清楚。每个参数都是在干事,能够收到哪些hint,如何查问题。

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
Fri Apr 14 16:52:54 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| 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:0B:00.0 Off |                  N/A |
|ERR!   52C    P2   ERR! / 260W |      0MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

表头释义:
Driver Version:显卡驱动版本号
CUDA Version:CUDA版本号
GPU Name:显卡名称
Persistence-M:是否支持持久性内存(Persistence-M是一种用于保存显卡驱动状态的特殊内存类型。如果启用了持久性内存,那么在显卡重启或掉电后,内存上的信息仍将保存下来。这种内存类型通常用于保存模型的长期数据,以便在不需要重新加载的情况下加速显卡操作。)
Bus-Id:显卡的总线ID(Bus-Id是显卡的总线ID,是该显卡在主板上的唯一标识。它是一个数字字符串,用于标识显卡在总线系统中的位置,方便系统识别和管理。每个显卡都有一个不同的总线ID,用于防止显卡混淆,以及为显卡提供管理和配置信息。)
Disp.A:显卡的显示状态(是否启用)(Disp.A是Display Active的缩写,表示是否有显示器激活,如果有显示器激活,则会显示Yes,否则显示No。显示器激活指的是在电脑系统中打开或使用外接的显示器,使其可以正常显示画面。)
Volatile Uncorr. ECC:是否启用显存错误校正(如果未启用则为0)(Volatile Uncorr. ECC——Volatile Uncorrectable Error Correction and Detection (VUECC):是一种可变不可修正的错误校验与纠正(ECC)技术,它旨在在计算机存储器中检测和纠正位错误。它使用了特殊的硬件来监控计算机内部数据,并在发现任何差错时通过可靠的方法自动纠正它们。)
Fan:风扇的速度(N/A表示不支持)
Temp:显卡的温度(单位为°C)
Perf:显卡性能状态(P0表示最高性能)(Performance是一种性能指标,用于衡量计算机系统的性能。它可以测量内存带宽、CPU时钟速度、GPU处理器指令集等。)
Pwr:Usage/Cap:显卡功耗使用情况/功耗容量(单位为W)(Power Usage/Capacity)
Memory-Usage:显存使用情况
GPU-Util:显卡利用率(Graphics Processor Unit Utilization)(Memory-Usage指的是设备内存占用情况,它表示当前系统正在使用的内存量。GPU-Util指的是图形处理器的利用率,这个数值表示GPU正在处理的任务的比例,以及它的性能。)
Compute M.:显卡计算模式(Compute M是一种用于测量GPU计算性能的衡量标准。它主要有三种类型:GFLOPS,TMUs和ROPs。GFLOPS代表每秒可以执行的浮点运算次数,TMU(纹理映射单元)可以每秒处理的纹理块数,而ROPs(渲染输出单元)可以每秒进行的像素写入操作次数。)(Default指的是GFLOPS,它用于衡量GPU的浮点计算能力。)

1.重点概念解析

Memory-Usage和Volatile GPU-Util是两个不一样的东西,显卡由GPU和显存等部分所构成,GPU相当于显卡上的CPU,显存相当于显卡上的内存。在跑任务的过程中可以通过优化代码来提高这两者的使用率。​
Memory Usage:显存的使用率;
Volatile GPU-Util:浮动的GPU利用率;
Memory-Usage 和 GPU-Util 均是 nvidia-smi 命令中列出的 GPU 设备状态信息。

Memory-Usage(显存使用情况)表示已经分配给进程的显存数量,通常以 MiB 或 GB 为单位。这个值可以帮助我们了解当前GPU设备的内存使用情况,以及每个进程正在使用的内存量。如果显存使用率过高,可能会导致程序崩溃或性能下降。因此,在优化深度学习训练时,需要根据显存使用情况对模型大小、批次大小等超参数进行调整。

GPU-Util(GPU使用率)表示 GPU 核心部件的使用率,表示正在执行计算任务的时间占比。例如,如果 GPU-Util 的值为 50%,那么 GPU 核心部件在运行期间有一半的时间用于执行计算任务。这个值可以帮助我们了解 GPU 核心部件的负载情况,并确定是否存在性能瓶颈。当 GPU-Util 的值接近 100% 时,意味着 GPU 正在全力工作,而进一步提高性能的唯一方法就是使用更多的 GPU 设备或者优化算法。

如果要周期性的输出显卡的使用情况,可以用watch指令实现:

watch -n 10 nvidia-smi
nvidia-smi dmon
 
# gpu   pwr gtemp mtemp    sm   mem   enc   dec  mclk  pclk
# Idx     W     C     C     %     %     %     %   MHz   MHz
    0    43    35     -     0     0     0     0  2505  1075
    1    42    31     -    97     9     0     0  2505  1075
(in this example, one GPU is idle and one GPU has 97% of the CUDA sm "cores" in use

nvidia-smi dmon命令用于监视NVIDIA GPU设备上的显卡性能统计信息,包括功率、温度、GPU使用率和内存使用情况等。以下是nvidia-smi dmon命令输出的详细解释:

gpu:GPU设备的索引。

pwr:GPU芯片上电源使用功率(单位为瓦特,W)。

gtemp:GPU温度(Celsius,摄氏度)。

mtemp:内存温度(Celsius,摄氏度)。

sm:CUDA核心中正在使用的流多处理器(SM)百分比。

mem:显存使用率。

enc:编码器利用率。

dec:解码器利用率。

mclk:显存时钟速率(MHz)。

pclk:图形时钟速率(MHz)。

在以上示例中,我们看到有两个GPU设备(索引为0和1),每个设备都列出了功率、温度、流多处理器(SM)利用率、显存使用率和时钟速率等性能指标信息。

值得注意的是,这个命令只显示实时的性能数据,因此需要不断刷新才能查看最新数据。可以使用以下命令来持续刷新数据:

nvidia-smi dmon -s u -d 1

其中,“-s”参数表示刷新数据的时间间隔(单位为秒),“-d”参数表示在哪个GPU设备上监视数据。这样,就可以实时监视GPU设备的性能指标,并及时发现潜在问题。

2.限制GPU显卡功率

使用命令:

nvidia-smi -pm 1 
nvidia-smi -pl 要限制的功率

未设置前:默认功率为最大功率,以2080Ti为例,功率为250W

在这里插入图片描述
设置后:最大功率限制在了100W

在这里插入图片描述
注意:如果系统重启后,限制设置就会失效,需要重新设置,或设置开机自动设置脚本
RTX2080用户手册:https://manuals.plus/wp-content/sideloads/nvidia-geforce-rtx-2080-graphics-card-manual-optimized.pdf
安装cuda官网指引:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#recommended-post
一个不错的排查指引:https://leiblog.wang/%E8%B8%A9%E5%9D%91nvidia-driver/

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值