一般情况下,当 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 将不会取消初始化,因此在查询时不再需要重新初始化。所以我看到的是真正的待机功耗。
标题:Linux下Nvidia 3090显卡待机功耗100W+高功耗是什么情况
原文链接:https://beltxman.com/3941.html
若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。