nvidia-smi
是 NVIDIA System Management Interface 的缩写,主要用于管理和监控 NVIDIA GPU(图形处理单元)。该工具提供了有关 GPU 使用情况、驱动版本、显存使用等信息的详细报告。它广泛用于服务器、工作站和高性能计算(HPC)环境中,特别是在使用 CUDA 或进行深度学习时。
1. 基本命令
1.1. 显示所有 GPU 信息
nvidia-smi
该命令将显示当前机器上所有 NVIDIA GPU 的详细状态,包括:
- GPU 使用率(利用率)
- 显存使用情况
- 驱动版本
- 显卡型号
- 进程列表等
输出示例:
Tue Aug 31 14:42:25 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.89 Driver Version: 460.89 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. | Pstate |
|===============================+======================+======================|
| 0 Tesla K80 Off | 00000000:00:1E.0 Off | 0 |
| N/A 33C P8 29W / 149W | 0MiB / 11441MiB | 0% Default |
+-----------------------------------------------------------------------------+
主要字段说明:
- GPU:GPU 编号
- Name:GPU 的名称
- Driver Version:当前驱动版本
- CUDA Version:支持的 CUDA 版本
- Fan:GPU 风扇的转速(百分比)
- Temp:GPU 当前温度
- Pwr: Usage/Cap:当前功率使用情况和最大功率容量
- Memory-Usage:显存的使用情况
- GPU-Util:GPU 当前的利用率
- Compute M.:GPU 是否处于计算模式
- Pstate:当前 GPU 的性能状态
1.2. 查看 GPU 进程
nvidia-smi pmon -c 1
该命令显示当前 GPU 上运行的进程。它会列出所有在 GPU 上运行的进程,包括进程的 PID(进程 ID)、使用的显存、GPU 使用率等。
输出示例:
GPU GI CI PID Type Process name GPU-Util Compute Memory-Usage
================================================================================
GPU 0 N/A 1234 C python 55% Default 250MiB
1.3. 查看 GPU 驱动和 CUDA 版本
nvidia-smi --query-gpu=driver_version,cuda_version --format=csv
该命令显示当前安装的 NVIDIA 驱动版本 和 CUDA 版本。
输出示例:
driver_version, cuda_version
460.89, 11.2
1.4. 显示 GPU 详细状态
nvidia-smi -q
此命令将显示更详细的 GPU 状态信息,包括内存、温度、功率等。
输出示例:
==============NVSMI LOG==============
Timestamp : Tue Aug 31 15:06:30 2021
Driver Version : 460.89
CUDA Version : 11.2
...
GPU 00000000:00:1E.0
Product Name : Tesla K80
GPU UUID : GPU-d5ad4088-fac4-6976-57ea-bd695e58fe9c
...
Memory Usage
Total : 11441 MiB
Used : 0 MiB
Free : 11441 MiB
...
2. 进阶命令
2.1. 设置 GPU 的性能状态(P-State)
nvidia-smi
允许设置 GPU 的性能状态,帮助用户调节 GPU 性能和功耗。
nvidia-smi -pm 1 # 启用持久模式
nvidia-smi -pm 0 # 禁用持久模式
持久模式(Persistence Mode):启用持久模式后,GPU 不会在没有活动时被关闭,从而减少 GPU 启动时间。
2.2. 设置 GPU 的功率限制
nvidia-smi -i 0 -pl 150
该命令允许你设置指定 GPU(例如 GPU 0
)的功率限制为 150W。功率限制对提高效率和防止过热非常有帮助。
2.3. 显示特定 GPU 的信息
nvidia-smi -i 0
此命令仅显示 GPU 0 的信息。
2.4. GPU 显存查询
nvidia-smi --query-gpu=memory.total,memory.free,memory.used --format=csv
此命令查询 GPU 显存的总量、已用显存和空闲显存。
输出示例:
memory.total, memory.free, memory.used
11441 MiB, 11441 MiB, 0 MiB
2.5. 设置 GPU 的计算模式
nvidia-smi -c 3
设置 GPU 的计算模式为 独占模式,即允许一个进程使用 GPU。该模式有助于防止多个进程共享 GPU,适用于一些需要大规模 GPU 资源的任务。
3. 持续监控 GPU 状态
3.1. 每秒更新 GPU 状态
nvidia-smi -l 1
该命令会每秒刷新一次 GPU 的状态信息,适合用来监控 GPU 的实时状态。
3.2. 显示 GPU 资源的详细信息并实时更新
nvidia-smi --loop=2
该命令每 2 秒更新一次 GPU 的详细信息,包括显存使用情况、GPU 使用率等。
4. 其他常用选项
4.1. 帮助命令
nvidia-smi --help
如果你想了解更多 nvidia-smi
命令的选项和功能,可以使用 --help
参数查看帮助文档。
5. 总结
nvidia-smi
是一个强大的工具,用于管理和监控 NVIDIA GPU。通过它,你可以:
- 查看 GPU 的使用状态、显存和温度。
- 管理 GPU 的性能状态、功率限制等。
- 持续监控 GPU 使用情况。
对于使用 深度学习 或 高性能计算 的用户,nvidia-smi
是一个不可或缺的工具。
发表回复