在 Ubuntu Server 20.04 上,运行 nvidia-smi 查询时我得到了一个非常令人担忧的输出:
$ nvidia-smi --query-gpu=index,pcie.link.gen.current,pcie.link.gen.max,pcie.link.width.current --format=csv
index, pcie.link.gen.current, pcie.link.gen.max, pcie.link.width.current
0, 1, 4, 8
1, 1, 4, 4
尽管卡的最大数量为 4,但报告的数量pcie.link.gen.current
为 1。如果我的理解正确,这可能会大大降低 CPU 和 GPU 之间的内存复制操作的速度,并可能影响我的深度学习训练和推理的速度(在 PyTorch 上)。
在硬件方面,这是我的设置:
- 中央处理器:英特尔酷睿 i9-11900
- 主板:华硕 ROG Strix Z590-A Gaming WiFi ATX
- GPU:2x ASUS RTX3090 Strix OC
- SSD:所有 M.2 插槽均已被占用(我知道这会限制可用的 PCIE 通道,因此我不会抱怨第二个 GPU 的通道只有 4 个而第一个有 8 个)
我已在主板 BIOS 中将这些插槽的 PCIE 生成设置特意设置为 4,但这并没有改变 nvidia-smi 的报告内容。
我可以如何:
- 测试这种情况是否真的对内存传输产生影响,或者这是否只是 nvidia-smi 报告错误信息的问题?
- 纠正这个有问题的设置吗?
答案1
根据https://enterprise-support.nvidia.com/s/article/Useful-nvidia-smi-Queries-2它指出“当前 PCI-E 链接生成。当 GPU 未使用时,这些可能会减少。”
因此,作为一项测试,我运行了以下命令来查看我的服务器是否配备了 NVIDIA RTX1650。
目前没有正在使用的 GPU:
terrance@Intrepid:~$ nvidia-smi
Wed Mar 1 07:13:34 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.78.01 Driver Version: 525.78.01 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| 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:01:00.0 On | N/A |
| 35% 37C P8 11W / 75W | 3MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
terrance@Intrepid:~$ nvidia-smi --query-gpu=index,pcie.link.gen.current,pcie.link.gen.max,pcie.link.width.current --format=csv
index, pcie.link.gen.current, pcie.link.gen.max, pcie.link.width.current
0, 1, 2, 16
现在使用 GPU:
terrance@Intrepid:~$ nvidia-smi
Wed Mar 1 07:40:16 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.78.01 Driver Version: 525.78.01 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| 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:01:00.0 On | N/A |
| 35% 40C P0 17W / 75W | 30MiB / 4096MiB | 1% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 310633 G /usr/lib/xorg/Xorg 23MiB |
| 0 N/A N/A 310787 G xfwm4 1MiB |
+-----------------------------------------------------------------------------+
terrance@Intrepid:~$ nvidia-smi --query-gpu=index,pcie.link.gen.current,pcie.link.gen.max,pcie.link.width.current --format=csv
index, pcie.link.gen.current, pcie.link.gen.max, pcie.link.width.current
0, 2, 2, 16
希望这可以帮助!