Home

【NVIDIA】英伟达显卡命令

这篇文章整理 NVIDIA 显卡日常排查里最常用的一组命令,核心是围绕 nvidia-smi 展开。相比把参数一条条硬背,更实用的方式是按“查看整体状态、看详细信息、盯实时监控、看进程、改设备状态”这几个场景去记。

nvidia-smi 是什么

nvidia-smi 简称 NVSMI,主要用于监控 GPU 使用情况、查看驱动信息以及修改部分设备状态。它通常会随着 NVIDIA 驱动一起安装完成。

常见路径如下:

  • Windows:C:\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe
  • Linux:/usr/bin/nvidia-smi

大多数 Linux 环境里,这个路径已经在 PATH 中,直接执行 nvidia-smi 即可。

1. 查看所有 GPU 当前状态

最常用的就是先直接执行:

nvidia-smi

这个命令适合快速确认以下信息:

  • 驱动版本是否正常
  • GPU 型号和总线号是否识别正确
  • 当前温度、功耗和利用率是否异常
  • 是否已有进程占用显存

显示的表格中:
Fan:风扇转速(0% - 100%),N/A 表示没有风扇
Temp:GPU 温度
Perf:性能状态,从 P0(最大性能)到 P12(最小性能)
Pwr:GPU 功耗
Persistence-M:持续模式状态
Bus-Id:GPU 总线位置,domain:bus:device.function
Disp.A:显示是否初始化
Memory-Usage:显存使用情况
Volatile GPU-Util:GPU 使用率
ECC:是否开启 ECC
Compute M.:计算模式

常用附加选项

nvidia-smi -i <gpu-id>

指定某个 GPU。

nvidia-smi -l <seconds>

动态刷新信息,按 Ctrl+C 停止。

nvidia-smi -f <file>

把结果输出到文件,不在终端直接显示。

2. 查看详细信息

nvidia-smi -q

这个命令更适合在需要查看完整硬件、驱动、ECC、功耗、时钟或进程信息时使用。

附加选项:
nvidia-smi -q -u
显示单元而不是 GPU 属性
nvidia-smi -q -i xxx
指定具体的 GPU 或 unit 信息
nvidia-smi -q -f xxx
把查询结果输出到文件
nvidia-smi -q -x
以 XML 形式输出
nvidia-smi -q -d xxx
只显示指定信息,例如 MEMORY、UTILIZATION、ECC、TEMPERATURE、POWER、CLOCK、PIDS
nvidia-smi -q -l xxx
动态刷新信息
nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv

选择性查询

常见可查询属性有 timestampdriver_versionpci.buspcie.link.width.current 等。实际支持字段可以通过 nvidia-smi --help-query-gpu 查看。

3. 修改设备状态

下面这些参数适合在你已经明确知道设备状态和业务影响时使用:

nvidia-smi -pm 0/1
设置持久模式:0/DISABLED,1/ENABLED
nvidia-smi -e 0/1
切换 ECC 支持
nvidia-smi -p 0/1
重置 ECC 错误计数
nvidia-smi -c
设置计算模式:0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
nvidia-smi -r
GPU 复位
nvidia-smi -vm
设置 GPU 虚拟化模式
nvidia-smi -ac xxx,xxx
设置 GPU 工作频率,例如:nvidia-smi -ac 2000,800
nvidia-smi -rac
恢复默认时钟频率
nvidia-smi -acp 0/1
切换 -ac 和 -rac 的权限要求
nvidia-smi -pl
指定最大电源限制(瓦特)
nvidia-smi -am 0/1
启用或禁用计数模式
nvidia-smi -caa
清除缓冲区中已记录的 PID

4. 实时监控设备状态

nvidia-smi dmon

设备监控命令,会以滚动方式持续显示 GPU 统计信息,适合排查温度、功耗和使用率波动。

附加选项:
nvidia-smi dmon -i xxx
用逗号分隔 GPU 索引、PCI 总线 ID 或 UUID
nvidia-smi dmon -d xxx
指定刷新时间(默认为 1 秒)
nvidia-smi dmon -c xxx
显示指定次数后退出

监控指定指标

nvidia-smi dmon -s xxx
指定显示哪些监控指标(默认为 puc),其中:
p:电源和温度
u:GPU 使用率(sm、mem、enc、dec)
c:GPU 和显存时钟频率
v:电源和热力异常
m:FB 内存和 Bar1 内存
e:ECC 错误和 PCIe 重显错误
t:PCIe 读写带宽
nvidia-smi dmon -o D/T
指定显示的时间格式
nvidia-smi dmon -f xxx
把结果输出到文件

5. 监控 GPU 进程

nvidia-smi pmon

这个命令用于查看 GPU 进程状态,适合排查“是谁在吃显存”“哪个进程持续占用 GPU”这类问题。

附加选项:
nvidia-smi pmon -i xxx
用逗号分隔 GPU 索引、PCI 总线 ID 或 UUID
nvidia-smi pmon -d xxx
指定刷新时间(默认为 1 秒,最大为 10 秒)
nvidia-smi pmon -c xxx
显示指定次数后退出
nvidia-smi pmon -s xxx
指定显示哪些指标(默认为 u),其中:
u:GPU 使用率
m:FB 显存使用情况
nvidia-smi pmon -o D/T
指定显示时间格式
nvidia-smi pmon -f xxx
把结果输出到文件

使用建议

  • 想先看整机状态时,先跑一次 nvidia-smi
  • 想看完整硬件和驱动信息时,用 nvidia-smi -q
  • 想持续观察功耗、温度和利用率时,用 dmon
  • 想排查具体是哪个进程占用 GPU 时,用 pmon
  • 修改功耗、时钟或虚拟化模式前,最好先确认驱动版本和业务影响
Linux 虚拟化 GPU