【深度学习】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
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
The CUDA Handbook begins where CUDA by Example (Addison-Wesley, 2011) leaves off, discussing CUDA hardware and software in greater detail and covering both CUDA 5.0 and Kepler. Every CUDA developer, from the casual to the most sophisticated, will find something here of interest and immediate usefulness. Newer CUDA developers will see how the hardware processes commands and how the driver checks progress; more experienced CUDA developers will appreciate the expert coverage of topics such as the driver API and context migration, as well as the guidance on how best to structure CPU/GPU data interchange and synchronization. The accompanying open source code-more than 25,000 lines of it, freely available at www.cudahandbook.com-is specifically intended to be reused and repurposed by developers. Designed to be both a comprehensive reference and a practical cookbook, the text is divided into the following three parts: Part I, Overview, gives high-level descriptions of the hardware and software that make CUDA possible. Part II, Details, provides thorough descriptions of every aspect of CUDA, including * Memory * Streams and events * Models of execution, including the dynamic parallelism feature, new with CUDA 5.0 and SM 3.5 * The streaming multiprocessors, including descriptions of all features through SM 3.5 * Programming multiple GPUs * Texturing The source code accompanying Part II is presented as reusable microbenchmarks and microdemos, designed to expose specific hardware characteristics or highlight specific use cases. Part III, Select Applications, details specific families of CUDA applications and key parallel algorithms, including * Streaming workloads * Reduction * Parallel prefix sum (Scan) * N-body * Image ProcessingThese algorithms cover the full range of potential CUDA applications.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值