前言
NVIDIA-SMI(NVIDIA System Management Interface)是NVIDIA提供的一个工具,用于监控和管理NVIDIA GPU设备。这个工具对于拥有NVIDIA显卡的用户来说是非常有用的,特别是在深度学习、科学计算等高性能计算领域中。本文将详细介绍NVIDIA-SMI命令的基本用法以及一些高级功能。
安装与启动
首先确保你的系统上已经安装了NVIDIA驱动程序。在大多数Linux发行版中,NVIDIA-SMI会随着驱动一起安装。你可以通过下面的命令来检查是否已安装并正确加载了NVIDIA-SMI:
$ nvidia-smi
如果命令返回了GPU的信息,则说明NVIDIA-SMI已经准备就绪。
基本使用
运行nvidia-smi
而没有参数时,默认会显示所有连接的NVIDIA GPU的信息,包括但不限于:
- GPU名称
- 显存使用情况
- 当前温度
- 功率使用情况
- 运行的应用程序或进程占用的显存
参数详解
-L
或 --list-gpus
列出系统中的所有GPU设备,格式为GPU <id>: <name> (UUID:<uuid>)
。
-q
或 --query
查询指定的信息。可以查询的选项有很多,例如-q temperature.gpu
用于查询GPU的温度。
-h
或 --help
显示帮助信息。
--format
指定输出格式,例如--format=csv
将结果以CSV格式输出。
--loop
周期性地查询并输出GPU的状态。例如--loop=1000
表示每隔1秒更新一次输出。
--id=<id>
只显示指定ID的GPU信息。
--fan
显示风扇状态。
--temperature
显示温度信息。
--utilization
显示利用率信息。
--memory
显示内存使用情况。
--driver
显示驱动版本信息。
--count
显示GPU数量。
--log
启用日志记录功能。
实际应用示例
假设我们需要监视所有GPU的温度,并且希望以CSV格式输出,我们可以这样操作:
$ nvidia-smi --query-gpu=temperature.gpu --format=csv
如果你想要每5秒钟更新一次温度数据,可以添加--loop
参数:
$ nvidia-smi --query-gpu=temperature.gpu --format=csv,nounits --loop=5000
高级功能
除了基本的监控功能外,NVIDIA-SMI还提供了对GPU的控制能力,比如设置GPU的性能状态(P-states)、设置GPU的功耗限制等。这些功能对于优化系统的性能和能效非常有帮助,但是需要管理员权限才能执行。
字段说明
字段说明:
- GPU:GPU 编号
- Name:GPU 型号
- Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少
- Fan:风扇转速,从0到100%之间变动
- Temp:温度,单位是摄氏度
- Perf:性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能(即 GPU 未工作时为P0,达到最大工作限度时为P12)
- Pwr:Usage/Cap:能耗
- Memory Usage:显存使用率
- Bus-Id:涉及GPU总线的东西,domain:bus:device.function
- Disp.A:Display Active,表示GPU的显示是否初始化
- Volatile GPU-Util:浮动的GPU利用率
- Uncorr. ECC:Error Correcting Code,错误检查与纠正
- Compute M:compute mode,计算模式
下方的 Processes 表示每个进程对 GPU 的显存使用率。
结语
NVIDIA-SMI是一个强大的工具,可以帮助用户更好地理解和管理自己的GPU资源。无论是对于游戏爱好者还是科研人员来说,了解如何使用NVIDIA-SMI都是非常有用的技能。希望本文能够帮助大家掌握NVIDIA-SMI的基本使用方法,并鼓励大家进一步探索其更深入的功能。