GPU传输带宽等信息监控nvidia-smi

GPU与CPU的传输带宽监测

bash 复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 20,21 -d 1

用于每隔 1 秒监控第 0 张 GPU 的 PCIe 收发带宽 ,输出的是 NVIDIA **GPM(GPU Performance Metrics)**中的两个指标:

复制代码
20 = PCIe TX,GPU 发出的 PCIe 流量,MiB/s
21 = PCIe RX,GPU 接收的 PCIe 流量,MiB/s

结果样例

复制代码
# gpu    pwr  gtemp  mtemp     sm    mem         pcitx      pcirx
# Idx      W      C      C      %      %     GPM:MiB/s  GPM:MiB/s
    0    461     40     37     63      1           451       7470
    1    406     38     35     39      2           365       6025
    2    379     37     33     39      0           433       7170
    3    391     36     34    100      5           402       6670

NVIDIA 官方文档中,--gpm-metrics 的指标编号来自 NVML 的 nvmlGpmMetricId_t,其中 NVML_GPM_METRIC_PCIE_TX_PER_SEC = 20 表示 GPU 发出的 PCIe traffic,单位 MiB/s;NVML_GPM_METRIC_PCIE_RX_PER_SEC = 21 表示流向 GPU 的 PCIe traffic,单位 MiB/s。

dmondevice monitoring 模式,用于连续输出 GPU 的动态监控数据。

-i 0 指定监控哪一张 GPU。

如果想监控多张卡,可以写成:nvidia-smi dmon -i 0,1,2,3

--gpm-options d

这个参数指定 GPM 指标的显示层级。

NVIDIA 文档中,--gpm-options 支持以下模式:d 表示显示 Device Level GPM metrics,m 表示显示 MIG Level GPM metrics,dm 表示同时显示 Device 和 MIG Level metrics。

这里的 ddevice 的意思,不是 delay。

如果 GPU 开启了 MIG,并且你想看 MIG 实例级别指标,可能会用:

复制代码
--gpm-options m

或者:

复制代码
--gpm-options dm

--gpm-metrics 20,21

这个参数指定要显示哪些 GPM 指标。

这里选择了两个指标:

指标 ID NVML 名称 含义 单位
20 NVML_GPM_METRIC_PCIE_TX_PER_SEC PCIe traffic from this GPU MiB/s
21 NVML_GPM_METRIC_PCIE_RX_PER_SEC PCIe traffic to this GPU MiB/s

也就是:

复制代码
20 = GPU → PCIe → Host/其他设备
21 = Host/其他设备 → PCIe → GPU

NVIDIA 官方 NVML 文档明确列出:20 是从 GPU 发出的 PCIe 流量,21 是流向 GPU 的 PCIe 流量。

-d 1

指定采样间隔, 表示每 1 秒 输出一次。

复制代码
-d 1

不用 GPM 时,dmon -s 可监控的常规信息

nvidia-smi dmon 默认会输出功耗、温度、SM/Mem 时钟,以及 SM、显存、编码器、解码器、JPEG、OFA 等利用率。NVIDIA 官方说明也提到,dmon 可通过 -s <metric_group> 选择不同监控组。

常用分组如下:

参数 监控内容 典型用途
-s p Power Usage、GPU/Memory Temperature 看功耗、温度是否异常
-s u SM、Memory、Encoder、Decoder、JPEG、OFA 利用率 看计算、显存、编解码模块负载
-s c SM/Proc Clock、Memory Clock 看频率是否降频
-s v Power Violation、Thermal Violation 看是否触发功耗墙/温度墙
-s m FB Memory、BAR1、Confidential Compute protected memory 看显存、BAR1 占用
-s e ECC 单/双 bit 错误、PCIe replay error 看硬件链路/显存可靠性问题
-s t PCIe RX/TX Throughput 看 PCIe 收发吞吐
-s n Noise / MMA Stall,Rubin 及以后支持 新架构上看 MMA stall 类信息

来源:NVIDIA nvidia-smi dmon 官方参数说明。

例如:

复制代码
# 功耗 + 利用率 + 时钟 + 显存 + PCIe 吞吐
nvidia-smi dmon -i 0,1,2,3 -s pucmt -d 1

# 加上日期时间,输出 CSV,便于画图
nvidia-smi dmon -i 0,1,2,3 -s pucmt -d 1 -o DT --format csv

使用 --gpm-metrics 时可监控的更细指标

--gpm-metrics 对应 NVML 的 nvmlGpmMetricId_t 枚举,--gpm-options d 表示 device levelm 表示 MIG leveldm/md 表示同时显示 device 和 MIG level。

比较常用的 GPM metric 可以分为几类。

A. GPU 计算活跃度 / SM 利用率

ID 指标 含义
1 Graphics/Compute Util 任意 compute/graphics app 活跃时间百分比
2 SM Util SM busy 百分比
3 SM Occupancy 活跃 warp 相对理论最大值的百分比
4 Integer Util INT 运算活跃度
5 Any Tensor Util 任意 Tensor Core 运算活跃度
6 DFMA Tensor Util FP64 Tensor 类运算
7 HMMA Tensor Util FP16/BF16 Tensor Core 类运算,常见于 LLM
8 DMMA Tensor Util FP64/TF64 相关 tensor 类运算,视架构而定
9 IMMA Tensor Util INT Tensor Core 类运算
11 FP64 Util 非 Tensor FP64 运算
12 FP32 Util 非 Tensor FP32 运算
13 FP16 Util 非 Tensor FP16 运算

这些指标可以用来判断模型推理/训练到底是在跑 CUDA core、Tensor Core,还是 SM 并没有被充分喂饱。官方 NVML 文档给出了 1~13 这些 GPM 指标的含义。

例如看 LLM 推理的 SM、占用率、Tensor Core、FP16:

复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 1,2,3,5,7,13 -d 1

B. 显存带宽

ID 指标 含义
10 DRAM BW Util DRAM 带宽利用率,相对理论峰值的百分比

这个对 LLM decode 很有用。decode 阶段通常 memory-bound,SM Util 不一定满,但 DRAM BW Util 可能较高。

复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 2,3,10 -d 1

C. PCIe 带宽

ID 指标 含义
20 PCIe TX/s GPU 发往 PCIe 的流量,MiB/s
21 PCIe RX/s GPU 从 PCIe 接收的流量,MiB/s

你现在用的就是这两个。

复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 20,21 -d 1

ID 指标 含义
60 NVLink Total RX/s 所有 NVLink 总读带宽
61 NVLink Total TX/s 所有 NVLink 总写带宽
62~97 NVLink 单 link RX/TX link0 ~ link17 的逐链路带宽
212+ 更多 NVLink link18 之后的逐链路带宽 新架构/更多链路场景

官方文档列出了 60/61 总 NVLink 带宽,以及 62~97 对应 link0~link17 的 RX/TX,后续还扩展到更多 link。

例如:

复制代码
# 看 NVLink 总带宽
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 60,61 -d 1

# 同时看 PCIe + NVLink
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 20,21,60,61 -d 1

E. NVDEC / NVJPG / NVOFA / NVENC

ID 范围 指标 含义
30~37 NVDEC 0~7 Util 视频解码单元利用率
40~47 NVJPG 0~7 Util JPEG 解码单元利用率
50~51 NVOFA 0~1 Util Optical Flow Accelerator 利用率
166~169 NVENC 0~3 Util 视频编码单元利用率

这些对视频推理、多媒体转码、视觉服务更有用。NVML 文档列出了 NVDEC、NVJPG、NVOFA 以及 NVENC 的 GPM metric ID。


F. C2C / Grace-Hopper / GPU-CPU 互连相关

ID 范围 指标 含义
100~103 C2C Total/Data TX/RX C2C 总流量和数据流量
104~159 C2C link0~link13 TX/RX 单 C2C link 级别流量

这些主要用于 Grace-Hopper、Grace-Blackwell 等 CPU-GPU coherent interconnect 场景。官方 NVML GPM 枚举中列出了 C2C total/data 以及逐 link 的 TX/RX 指标。


G. Cache hit/miss、上下文切换类指标

ID 范围 指标 含义
160~165 HostMem / PeerMem / DRAM Cache Hit/Miss 不同来源内存访问的 cache hit/miss
170~209 GR0~GR7 Context Switch graphics/compute context switch cycles、requests、active pct 等

这类指标更偏底层,适合排查多进程、多租户、MIG 或上下文切换开销。


3. 对 LLM 推理最有价值的组合

如果你是分析大模型推理,我建议优先看这几组。

看 prefill 是否 compute-bound

复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 1,2,3,5,7,10 -d 1

重点看:

复制代码
2  SM Util
3  SM Occupancy
5  Any Tensor Util
7  HMMA Tensor Util
10 DRAM BW Util

如果 Tensor UtilSM Util 高,通常说明矩阵乘比较充分,prefill 可能偏 compute-bound。

看 decode 是否 memory-bound

复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 2,3,10,20,21,60,61 -d 1

重点看:

复制代码
10 DRAM BW Util
20/21 PCIe TX/RX
60/61 NVLink RX/TX

如果 SM Util 不高但 DRAM BW Util 高,常见于 KV cache 读取压力较大的 decode。

复制代码
nvidia-smi dmon -i 0,1,2,3 --gpm-options d --gpm-metrics 20,21,60,61 -d 1

如果 NVLink 流量高,说明 GPU-GPU 通信主要走 NVLink;如果 PCIe RX/TX 高,可能有 host-device 拷贝、CPU staging、跨 PCIe 通信或数据加载瓶颈。


4. 一个比较实用的"全景监控"命令

复制代码
nvidia-smi dmon \
  -i 0,1,2,3 \
  --gpm-options d \
  --gpm-metrics 1,2,3,5,7,10,20,21,60,61 \
  -d 1 \
  --format csv

含义:

复制代码
1   GPU active
2   SM busy
3   SM occupancy
5   Tensor Core overall
7   HMMA Tensor Core
10  DRAM bandwidth utilization
20  PCIe TX
21  PCIe RX
60  NVLink total RX
61  NVLink total TX

对 LLM 推理性能分析,这组通常比只看 nvidia-smi 默认的 GPU-Util 更有价值。注意:不同 GPU 架构、驱动版本、MIG 模式下支持的字段会不同;不支持或读取失败时,dmon 会显示 -。NVIDIA 官方文档也明确说明,MIG 场景下部分 utilization 查询并不总是支持。

相关推荐
冬奇Lab1 小时前
Skill 平台的五个深坑:企业 AI 能力体系的质量治理
人工智能·agent
码农小白AI1 小时前
生鲜农产品来料验收提质,IACheck AI 报告文档审核比对农残兽残合格证书
人工智能
禹亮科技1 小时前
上海临港100㎡大型跨国会议室音视频集成方案(思科Webex+思必驰AI音频)
人工智能·音视频·思必驰吸顶麦·禹亮科技
海兰1 小时前
【web应用】Excel 项目数据自动化分析系统(AI 驱动分析)详细设计与部署指南(附源代码)
前端·人工智能·自动化·excel
汉知宝科技2 小时前
跨境电商品牌合规:出海企业商标管理的特殊挑战与数字化应对
大数据·人工智能
ai产品老杨2 小时前
架构师深剖:基于 Docker 容器化与边缘计算的 AI 视频管理平台——支持 GB28181/RTSP 多协议接入与全源码交付
人工智能·docker·边缘计算
IT_陈寒2 小时前
Python的os.path.join居然能这么坑?
前端·人工智能·后端
2401_832298102 小时前
突破跨平台孤岛,OpenClaw全域系统互联能力,构建企业统一数字操作系统
人工智能
物联网IoT小易2 小时前
AI企业园区技术架构思考:大模型如何进入物理世界运营场景?
人工智能·智慧园区·智慧园区解决方案·ai智慧园区·aiot平台·ai企业园区