找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

572

积分

0

好友

80

主题
发表于 3 天前 | 查看: 7| 回复: 0

nvidia-smi(简称NVSMI)是NVIDIA提供的一个跨平台工具,用于监控GPU使用情况、修改GPU状态以及管理如MIG等高级功能。它随NVIDIA驱动程序一同安装,是进行GPU运维/DevOps和性能调优的必备工具。

一、查看GPU概要信息状态

执行以下命令可查看所有GPU的当前概要信息:

$ nvidia-smi

输出示例如下:

Fri Dec5 07:41:24 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.148.08 Driver Version: 570.148.08 CUDA Version: 12.8                     |
|-----------------------------------------+------------------------+----------------------+
| 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 H20-3e             On       | 00000000:10:00.0 Off  |                    0 |
| N/A   31C    P0             113W / 500W |  140917MiB / 143771MiB |      0%      Default |
|                                         |                        |              Disabled |
+-----------------------------------------+------------------------+----------------------+
...
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A    945408      C   /usr/bin/python3                            140908MiB |
|    1   N/A  N/A    945409      C   /usr/bin/python3                            141000MiB |
...

常用指标说明:

  • Fan: 风扇转速(0%--100%),N/A表示没有风扇。
  • Temp: GPU温度(温度过高会导致GPU频率下降)。
  • Perf: 性能状态,从P0(最大性能)到P12(最小性能)。
  • Pwr: GPU功耗。
  • Persistence-M: 持续模式状态。持续模式耗能大,但在启动新的GPU应用时耗时更少。
  • Bus-Id: GPU总线地址,格式为 domain:bus:device.function
  • Disp.A: Display Active,表示GPU的显示是否已初始化。
  • Memory-Usage: 显存使用率。
  • Volatile GPU-Util: 实时GPU使用率。
  • ECC: 是否开启错误检查和纠正技术,0/DISABLED, 1/ENABLED
  • Compute M.: 计算模式,0/DEFAULT, 1/EXCLUSIVE_PROCESS, 2/PROHIBITED
  • MIG M.: MIG模式状态,EnabledDisabled

二、查询GPU详细信息

nvidia-smi 支持多种查询选项,以获取更详细的GPU信息。

  1. 查看所有GPU的详细信息

    $ nvidia-smi -q
  2. 查看指定GPU(如0号卡)的详细信息

    $ nvidia-smi -q -i 0
  3. 将查询信息输出到文件

    $ nvidia-smi -q -f gpu_info.txt
    $ cat gpu_info.txt
  4. 以XML格式输出信息

    $ nvidia-smi -q -x
  5. 指定查询信息类别 使用 -d 参数指定类别,可选值包括 MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER, CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT, ACCOUNTING

    # 示例:查看0号卡的ECC详情
    $ nvidia-smi -i 0 -q -d ECC
  6. 动态刷新信息 使用 -l 参数指定刷新间隔(秒),按 Ctrl+C 停止。

    # 示例:查看6号卡详细信息,每隔5秒刷新一次
    $ nvidia-smi -i 6 -q -l 5
  7. 自定义查询属性并格式化输出 使用 --query-gpu--format 参数灵活获取所需字段。

    $ nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv
    name, pci.bus_id, vbios_version
    NVIDIA H20-3e, 00000000:10:00.0, 96.00.C3.00.02
    ...
  8. 使用管道命令过滤关键信息

    # 过滤出所有GPU的序列号和UUID
    $ nvidia-smi -q | egrep -i “seria|uuid”

三、查看GPU ID与UUID

此命令列出所有GPU的索引、名称及其唯一标识符(UUID),在指定设备时非常有用。

$ nvidia-smi -L
GPU 0: NVIDIA H20-3e (UUID: GPU-bc6059f0-5e92-c3b0-c304-xxx)
GPU 1: NVIDIA H20-3e (UUID: GPU-1f63ffb0-900b-d9e1-9afe-xxx)
...

四、MIG(多实例GPU)管理

MIG(Multi-Instance GPU)是NVIDIA的一项GPU虚拟化技术,允许将一块物理GPU划分为多个独立的GPU实例,分配给不同的虚拟机、容器或用户,从而提高GPU资源的利用率和多租户支持能力。此技术通常需要特定硬件(如支持MIG的GPU型号)和软件支持,无需额外许可证但可能需要NVLINK等硬件。

MIG的基本操作流程为:启用MIG -> 创建GPU实例(GI) -> 创建计算实例(CI) -> (使用后)删除CI -> 删除GI -> 禁用MIG。

  1. 查看MIG状态 通过 nvidia-smi -i <gpu_id> 命令查看 “MIG M.” 项,判断MIG是否已开启(Enabled/Disabled)。

    $ nvidia-smi -i 7
  2. 开启/关闭指定GPU的MIG

    # 开启7号卡的MIG
    $ nvidia-smi -i 7 -mig 1
    # 关闭7号卡的MIG(将销毁所有现有MIG实例)
    $ nvidia-smi -i 7 -mig 0

    注意:若开启时遇到“pending”状态,可能原因及解决方法包括:

    • GPU正被程序使用:终止相关进程。
    • Docker容器挂载了该GPU:停止运行的容器
    • 系统服务占用:尝试 systemctl stop nvsmsystemctl stop dcgm
    • 重置GPU:执行 nvidia-smi --gpu-reset(谨慎使用)。
  3. 查看可创建的GPU实例(GI)配置

    $ nvidia-smi mig -i 7 -lgip

    输出显示不同配置的GI类型(ID)、可创建数量(Free/Total)、内存大小和算力(SM)等信息。

  4. 创建GPU实例(GI)

    # 在7号卡上创建一个ID为9(例如MIG 3g.71gb)的GI实例
    $ nvidia-smi mig -i 7 -cgi 9
    # 查看已创建的GI
    $ nvidia-smi mig -i 7 -lgi

    仅创建GI后,通过 nvidia-smi -i 7 查看会显示“No MIG devices found”,因为还需要创建计算实例(CI)。

  5. 查看并创建计算实例(CI)

    # 查看指定GI(如ID 1)支持的CI配置
    $ nvidia-smi mig -i 7 -lcip -gi 1
    # 在7号卡的GI 1上,创建ID为0和1的CI实例
    $ nvidia-smi mig -i 7 -cci 0,1 -gi 1

    创建成功后,执行 nvidia-smi -L 可看到类似 MIG 1c.3g.40gb Device 0 的子设备及其UUID。

  6. 一键创建GI及对应的CI

    # 创建GI(ID 5)并自动创建其全算力CI
    $ nvidia-smi mig -i 7 -cgi 5 -C
  7. 删除MIG实例 MIG支持灵活删除,可单独删除CI或GI。

    # 删除7号卡上GI 1的所有CI
    $ nvidia-smi mig -i 7 -dci -gi 1
    # 删除7号卡上的GI 1
    $ nvidia-smi mig -i 7 -dgi -gi 1
    # 删除7号卡上GI 2的特定CI 1
    $ nvidia-smi mig -i 7 -dci -ci 1 -gi 2

五、设备状态修改

以下命令用于修改GPU的运行时状态(通常需要管理员权限):

  • 设置持久模式$ nvidia-smi -pm 0/1 (0/DISABLED, 1/ENABLED)
  • 切换ECC支持$ nvidia-smi -e 0/1 (0/DISABLED, 1/ENABLED)
  • 重置ECC错误计数$ nvidia-smi -p 0/1 (0/VOLATILE, 1/AGGREGATE)
  • 设置计算模式$ nvidia-smi -c (0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED)
  • GPU复位$ nvidia-smi -r
  • 设置GPU工作频率$ nvidia-smi -ac <图形时钟,内存时钟>
  • 重置GPU工作频率$ nvidia-smi -rac
  • 设置最大功耗限制$ nvidia-smi -pl <瓦特数>

六、实时监控数据输出

6.1 设备监控 (dmon)

以滚动格式实时监控所有GPU的设备级指标。

# 监控所有GPU(默认指标 pwr, utilization, clock)
$ nvidia-smi dmon
# 指定监控0号GPU,每秒刷新,共采样5次
$ nvidia-smi dmon -i 0 -d 1 -c 5
# 指定监控指标:功耗温度(p)、使用率(u)、时钟(c)、显存(m)
$ nvidia-smi dmon -s pucm
# 输出到文件
$ nvidia-smi dmon -f monitor.log
6.2 进程监控 (pmon)

以滚动格式实时监控占用GPU的进程信息,对于人工智能训练任务调试非常有用。


# 监控所有GPU上的进程
$ nvidia-smi pmon
# 指定监控1号GPU,每2秒刷新一次
$ nvidia-smi pmon -i 1 -d 2
# 指定监控指标:使用率(u)、显存(m)
$ nvidia-smi pmon -s um
# 输出到文件
$ nvidia-smi pmon -f process_monitor.log



上一篇:TP-Link AX10漏洞实战分析:CVE-2025-9961漏洞利用与ACS模拟
下一篇:紧急修复:Next.js爆CVSS 10.0高危漏洞,数百万Web服务面临RCE风险
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-12 04:05 , Processed in 0.097665 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表