前言

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的基本使用方法,并鼓励大家进一步探索其更深入的功能。