📅  最后修改于: 2023-12-03 14:44:50.121000             🧑  作者: Mango
在深度学习领域中,使用 GPU 进行计算已经成为了常态,而如何有效地管理和监控 GPU 的使用情况也成为了每一个开发者必须掌握的一项技能。
在 NVIDIA 提供的驱动和 CUDA Toolkit 中,有一个名为 nvidia-smi
的命令行工具,它是一种用来监控 NVIDIA GPU 使用情况的工具。本文将向大家介绍如何使用 nvidia-smi
这个工具来获取 GPU 的使用情况。
nvidia-smi
是 NVIDIA 官方提供的命令行工具,因此只需要安装好 NVIDIA 的驱动和 CUDA Toolkit 就能够使用。在 Ubuntu 系统中,只需要执行以下命令即可安装:
sudo apt-get update
sudo apt-get install nvidia-cuda-toolkit
在安装完成后,就可以通过命令行来使用 nvidia-smi
工具了。以下是一些常见的用法:
使用以下命令可以查看所有 GPU 的使用情况:
nvidia-smi
该命令会返回类似以下的输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3 |
|-------------------------------+----------------------+----------------------+
| 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 TITAN RTX Off | 00000000:17:00.0 Off | N/A |
| 41% 40C P8 26W / 280W | 479MiB / 24268MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA TITAN RTX Off | 00000000:65:00.0 Off | N/A |
| 41% 38C P8 24W / 280W | 479MiB / 24268MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
其中,第一列是 GPU 的编号,第二列是 GPU 的名称,第三列是 GPU 的状态信息。
使用以下命令可以查看某个 GPU 的使用情况:
nvidia-smi -i <GPU_ID>
其中,<GPU_ID>
是要查看的 GPU 的编号。例如,以下命令可以查看第一块 GPU 的使用情况:
nvidia-smi -i 0
使用以下命令可以查看指定 GPU 的使用情况,并按照 GPU 利用率排序:
nvidia-smi --query-gpu=utilization.gpu,index,memory.used,temperature.gpu --format=csv,noheader | sort -rn
该命令会返回类似以下的输出:
27,1,3618 MiB,43
23,0,3442 MiB,39
其中,第一列是 GPU 的利用率,第二列是 GPU 的编号,第三列是 GPU 的内存使用情况,第四列是 GPU 的温度。
使用以下命令可以查看当前使用 GPU 的进程:
nvidia-smi pmon -c 1
该命令会返回类似以下的输出:
# gpu pid type sm mem enc dec Command
# Idx # C/G % % % % Name
0 15320 C 100 77 0 0 python
1 15671 C 100 77 0 0 python
其中,第一列是 GPU 的编号,第二列是进程的 PID,第四列是 SM 利用率,第五列是内存利用率,第六列和第七列是编码和解码的利用率,最后一列是进程的名称。
通过以上介绍,大家已经可以使用 nvidia-smi
工具来监控 GPU 的使用情况了。对于一些复杂的应用场景,还有更多选项和用法,可以通过 nvidia-smi --help-query-gpu
命令来查看。