大家好,我是 Ai 学习的老章

咱也过上好日子了,H200x8 get✅

之前写过系列文章搭建 AI 服务器

本文简单看看 Nvidia-smi 中可以看出哪些信息

nvidia-smi (NVIDIA System Management Interface) 是一个基于命令行的实用工具,旨在帮助管理和监控 NVIDIA GPU 设备。它是 NVIDIA 驱动程序附带的核心组件,对于任何使用 NVIDIA GPU 的用户,无论是进行深度学习、科学计算、还是高性能计算(HPC),nvidia-smi 都是一个不可或缺的工具。

通过它,你可以实时获取 GPU 的各项状态信息,并对某些参数进行调整。

二、解读默认输出

在终端中直接输入 nvidia-smi,你会看到一个信息丰富的仪表盘。让我们逐一解析其中的内容。

+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.104.05   Driver Version: 535.104.05   CUDA Version: 12.2     | |-------------------------------+----------------------+----------------------+ | 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 A100-SXM...  On   | 00000000:01:00.0 Off |                    0 | | N/A   30C    P0    72W / 400W |   1024MiB / 40960MiB |      0%      Default | |                               |                      |             Disabled | +-------------------------------+----------------------+----------------------+ |   1  NVIDIA A100-SXM...  On   | 00000000:02:00.0 Off |                    0 | | N/A   31C    P0    75W / 400W |   1024MiB / 40960MiB |      5%      Default | |                               |                      |             Disabled | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes:                                                                  | |  GPU   GI   CI        PID   Type   Process name                  GPU Memory | |        ID   ID                                                   Usage      | |=============================================================================| |    0   N/A  N/A    12345      C   /usr/bin/python                   1000MiB | |    1   N/A  N/A    54321      C   /usr/bin/python                   1000MiB | +-----------------------------------------------------------------------------+
1. 标题栏
  • NVIDIA-SMI Version : nvidia-smi 工具本身的版本。

  • Driver Version : 已安装的 NVIDIA 驱动版本。这是关键信息,因为它决定了硬件支持和部分软件兼容性。

  • CUDA Version : 驱动程序支持的最高 CUDA 版本。注意,这不代表你环境中安装的 CUDA Toolkit 版本,但你安装的 CUDA Toolkit 版本不能高于此版本。

2. GPU 信息表 表头
  • GPU : GPU 的唯一编号(从 0 开始)。

  • Name : GPU 的型号名称,例如 NVIDIA A100GeForce RTX 4090

  • Persistence-M : 持久模式 (Persistence Mode) 是否开启 ( On / Off )。开启后,即使没有程序使用 GPU,驱动也会保持加载状态,可以减少 GPU 任务启动的延迟。对于服务器环境,建议开启。

  • Bus-Id : GPU 在主板上的物理位置(PCIE 总线地址),用于唯一标识物理设备。

  • Disp.A : Display Active,表示是否有显示器连接到该 GPU。

  • Fan : 风扇转速百分比。对于被动散热或水冷的服务器 GPU,可能会显示 N/A

  • Temp : GPU 核心当前温度(摄氏度)。

  • Perf : Performance State,性能状态。从 P0 (最高性能) 到 P12 (最低性能) 不等。

  • Pwr:Usage/Cap : 当前功耗 / 设计最大功耗。例如 72W / 400W

  • Memory-Usage : 已使用的显存 / 总显存。例如 1024MiB / 40960MiB 。这是监控模型是否能载入的关键指标。

  • GPU-Util : GPU 利用率百分比。反映了计算核心的繁忙程度。

  • Compute M. : 计算模式 (Compute Mode)。 Default (默认), Exclusive_Process (独占进程), Prohibited (禁止)。

  • MIG M. : 多实例 GPU (Multi-Instance GPU) 模式是否启用。

3. 进程信息表

这个表格列出了当前正在使用 GPU 的所有进程。

  • GPU : 进程所使用的 GPU 编号。

  • PID : 进程的系统 ID。

  • Type : 进程类型。 C (Compute) 代表计算任务, G (Graphics) 代表图形任务。

  • Process name : 进程的名称或命令路径。

  • GPU Memory Usage : 该进程占用的显存大小。

三、常用指令参数解析

nvidia-smi 提供了丰富的参数用于查询和控制。

1. 监控类指令 持续刷新监控

如果你想动态地监控 GPU 状态,而不是只看一个静态快照,可以使用循环查询参数。

  • -l <秒数>--loop= <秒数>

    按指定的秒数间隔刷新并显示信息。例如,每秒刷新一次:

    nvidia-smi -l 1

    Ctrl+C 退出。

查询特定信息

使用 -q--query 参数可以获取非常详细的、可定制的信息,非常适合用于编写脚本。

  • -q--query

    查询并显示 GPU 的详细信息,比默认输出更全面。
  • --query-gpu= <属性>

    查询指定的 GPU 属性。你可以指定一个或多个属性,用逗号分隔。
  • --format= <格式>

    控制输出格式,通常与 --query-gpu 配合使用。常用格式有 csv, noheader, nounits。

实用示例:

以 CSV 格式获取所有 GPU 的时间戳、名称、温度、利用率和已用显存,不带表头和单位。

nvidia-smi --query-gpu=timestamp,name,temperature.gpu,utilization.gpu,memory.used --format=csv,noheader,nounits
输出可能如下:

2025/08/03 12:00:00.000, NVIDIA A100-SXM4-40GB, 30, 0, 1024 2025/08/03 12:00:00.000, NVIDIA A100-SXM4-40GB, 31, 5, 1024

这对于自动化监控和日志记录非常有用。

2. 管理与控制类指令

警告: 修改 GPU 状态可能影响系统稳定性,请谨慎操作。

持久模式

  • nvidia-smi -pm 1

    开启 0 号 GPU 的持久模式。
  • nvidia-smi -i 0 -pm 1

    与上一条命令等效,-i 用于指定 GPU 编号。
功耗限制
  • nvidia-smi -pl <瓦数>--power-limit= <瓦数>

    设置 GPU 的最大功耗限制,例如 nvidia-smi -pl 300。这对于在功耗受限的环境中运行 GPU 非常有用。需要管理员权限。
时钟频率
  • nvidia-smi -lgc <频率>--lock-gpu-clocks= <频率>

    锁定 GPU 核心频率。
  • nvidia-smi -rgc--reset-gpu-clocks

    重置 GPU 核心频率到默认值。
3. 信息展示类指令
  • -L--list-gpus

    以列表形式简洁地显示所有检测到的 GPU 及其 UUID。

    nvidia-smi -L
    输出:

    GPU 0: NVIDIA A100-SXM4-40GB (UUID: GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) GPU 1: NVIDIA A100-SXM4-40GB (UUID: GPU-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy)
  • -h--help

    显示帮助信息,列出所有可用的参数和说明。
四、实用场景示例
  1. 检查可用显存

    在运行深度学习任务前,查看默认输出中的 Memory-Usage,确保有足够的显存。
  2. 找出占用 GPU 的“元凶”

    如果 GPU 利用率很高,但你不知道是哪个程序在运行,查看底部的进程列表,找到对应的 PID,然后可以使用 ps -ef | grep 或 kill 来管理该进程。
  3. 编写自动化监控脚本

    使用 --query-gpu 和 --format 结合 crontab 或其他调度工具,可以轻松实现对 GPU 集群的长期监控和数据记录。
总结

nvidia-smi 是一个功能强大且灵活的工具。熟练掌握它的使用,不仅能让你对 GPU 的状态了如指掌,还能通过脚本化查询和控制,极大地提升 GPU 资源的管理效率。无论是初学者还是资深专家,都应该将它作为日常工具箱中的必备利器。

这台机器可能配置起来就稍微麻烦点,直接上生产环境了,配置过程中可能还会产出几篇文章。

下一篇,讲讲如何在内网搭建大模型镜像源。