AI编程生活评测

Linux下Nvidia 3090显卡待机功耗100W+高功耗是什么情况

编程笔记 / 2023-10-13 / 3 min
一般情况下,当 GPU 空闲(待机)时,它们非常低的功耗,大约在 5W ~ 30W 左右,机器上原有的nvidia 2080 一直这样正常运行的。 但是,最近给机器新加了一张3090显卡,情况就不太正常了,它的待机功耗也保持在 100W 以上。这很奇怪。 运行环境:
GPU RTX2080 + RTX3090; 系统 Ubuntu18.04; 驱动程序版本为 510.39;
2个GPU:
# nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 2080 (UUID: GPU-30bb4caf-0cc1-78b2-c66d-6a2745da220e)
GPU 1: NVIDIA GeForce RTX 3090 (UUID: GPU-0bd52c2d-b590-49c8-5855-550ab24a1c41)
命令 nvidia-smi 的输出:
# nvidia-smi
Fri Oct 13 07:18:20 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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 ...  On   | 00000000:17:00.0 Off |                  N/A |
|  0%   48C    P8     5W / 275W |      3MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  On   | 00000000:65:00.0 Off |                  N/A |
|  0%   57C    P8    103W / 350W |      10MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
而且明显能感觉到 nvidia-smi 命令反应比较慢,要等一会儿才会出来结果。 针对这个问题,经过一番研究,终于将待机功耗恢复到正常水平,通过命令:
sudo nvidia-smi -pm 1
启用持久模式。所有GPU的空闲功耗下降到低于30W的正常水平。
# nvidia-smi
Fri Oct 13 09:24:53 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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 ...  On   | 00000000:17:00.0 Off |                  N/A |
|  0%   47C    P8     3W / 275W |      3MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  On   | 00000000:65:00.0 Off |                  N/A |
|  0%   53C    P8    29W / 350W |      2MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
但是,现在我认为实际上使用功耗可能并不像我看到的那么高。我猜测是因为我查询这些 GPU 的状态时导致瞬时功耗的提高。 NVIDIA 内核驱动程序必须运行并连接到GPU 设备,然后用户才能与设备进行交互。 当持久性模式关闭时,GPU 驱动程序将在没有进程使用 GPU 时取消挂载(初始化)这些 GPU。这时当我使用 nvidia-smi 查询这些 GPU 的状态时。驱动程序将首先初始化 gpu,然后获取状态。这导致 GPU 在高功耗下运行初始化。因此,我们就看到了瞬时的高功耗信息,看上去好像即使没有任何工作负载,GPU的电源使用率也很高。实际上,这是正在初始化时这些 GPU 的状态。 当持久化模式打开时,GPU 将不会取消初始化,因此在查询时不再需要重新初始化。所以我看到的是真正的待机功耗。
点击刷新