July · 2022年04月08日

恒源云(Gpushare)_如何查看显卡占用的情况?技巧大放送2!

文章来源 | 恒源云社区

原文地址 | 【小技巧-显卡篇】


1、如何看显卡占用的情况?

通过终端执行 nvidia-smi 命令可以查看显卡的情况,可以查看显卡功耗、显存占用等情况。

root@I15b96311d0280127d:~# nvidia-smi
Mon Jan 11 13:42:18 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.27.04    Driver Version: 460.27.04    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| 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  GeForce RTX 3090    On   | 00000000:02:00.0 Off |                  N/A |
| 63%   55C    P2   298W / 370W |  23997MiB / 24268MiB |     62%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

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

因为实例均为 Docker 容器,因容器 PID 隔离的限制使用 nvidia-smi 会看不到进程。

在终端中执行 py3smi 命令可以查看到是否有进程正在使用显卡。

root@I15b96311d0280127d:~# py3smi
Mon Jan 11 13:43:00 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI                        Driver Version: 460.27.04                 |
+---------------------------------+---------------------+---------------------+
| GPU Fan  Temp Perf Pwr:Usage/Cap|        Memory-Usage | GPU-Util Compute M. |
+=================================+=====================+=====================+
|   0 63%   55C    2  284W / 370W | 23997MiB / 24268MiB |      80%    Default |
+---------------------------------+---------------------+---------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
| GPU        Owner      PID      Uptime  Process Name                   Usage |
+=============================================================================+
|   0          ???    10494                                          23995MiB |
+-----------------------------------------------------------------------------+

2、训练时 GPU 利用率上不去?

在训练过程中查看显卡的使用率,发现核心利用率和显卡功耗低,没有完全利用显卡。

这种情况有可能是每一次训练的步骤中,除了使用 GPU 外,还有大部分时间消耗在了 CPU,造成了 GPU 利用率成周期变化。

解决利用率的问题需要改进代码,可以参考夕小瑶的 训练效率低?GPU利用率上不去? 的这篇文章。

3、CUDA、CUDNN 版本是多少?

使用 nvidia-smi 所查看到的 CUDA Version 为当前驱动支持的版本,不代表实例已安装的版本。

具体版本以创建实例时选择的官方镜像版本的为准。

# 查看 CUDA 版本
root@I15b96311d0280127d:~# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Feb_14_21:12:58_PST_2021
Cuda compilation tools, release 11.2, V11.2.152
Build cuda_11.2.r11.2/compiler.29618528_0

# 查看 CUDNN 版本
root@I15b96311d0280127d:~# dpkg -l | grep libcudnn | awk '{print $2}'
libcudnn8
libcudnn8-dev

# 查看 CUDNN 位置
root@I15b96311d0280127d:~# dpkg -L libcudnn8 | grep so
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.1.1
...

4、在 RTX 30 系列显卡上开始训练会卡住?

查看库所使用的 CUDA 版本是否低于 11.0。

RTX 3000 系列显卡最低要求 CUDA 11 及以上的版本,使用低于 11 的版本会造成进程卡住。

推荐阅读
关注数
4
文章数
79
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息