07 — npu-smi 使用参考

npu-smi v24.1.0.3 是昇腾 NPU 的轻量级设备管理工具,对应 NVIDIA 生态中的 nvidia-smi。它不依赖 CANN toolkit,直接通过驱动层获取设备状态,因此即使在 CANN 未安装或配置错误的场景下仍可正常工作。适合日常巡检、状态监控和进程管理。

1. 命令结构

npu-smi 采用 npu-smi info <子命令> 的二级参数结构:

npu-smi                           # 等价于 npu-smi info(默认输出)
npu-smi info                      # 所有设备概览 + 进程表
npu-smi info -l                   # 卡间拓扑
npu-smi info -m                   # Chip ID 映射
npu-smi info -t <type> [-i <id>]  # 指定类型详细信息
npu-smi info watch                # 滚动刷新模式

-t 支持 60+ 种查询类型,-i 指定 NPU 编号(0-7),-c 指定 Chip ID(默认 0 为 AI 芯片,1 为 MCU 管理芯片)。

2. 默认输出解读

执行 npu-smi 或 npu-smi info,输出分为上下两部分:设备概览表 + 进程表。

+------------------------------------------------------------------------------------------------+
| npu-smi 24.1.0.3                 Version: 24.1.0.3                                             |
+---------------------------+---------------+----------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                      | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     910B3               | OK            | 92.9        37                0    / 0             |
| 0                         | 0000:C1:00.0  | 0           0    / 0          3379 / 65536         |
+---------------------------+---------------+----------------------------------------------------+
...
+---------------------------+---------------+----------------------------------------------------+
| NPU     Chip              | Process id    | Process name             | Process memory(MB)      |
+===========================+===============+====================================================+
| No running processes found in NPU 0                                                            |
+===========================+===============+====================================================+

上半部分每行对应一个 Chip:第一行为 AI 芯片(Chip ID=0),字段含义如下:

字段 含义 解读
Name 芯片型号 910B3 / 910B2 等
Health 健康状态 OK 正常;若有异常则显示具体告警码
Power(W) 实时功耗 空闲 ~93 W;FP16 算力测试满载 ~231 W;实际训练可达 ~273 W(此前观测到 5 号卡训练时达此功耗)
Temp(C) 芯片温度 正常范围 30-60°C;持续 >85°C 触发降频
Hugepages-Usage 大页内存 显示已用/总量(page);本服务器为 0,表示未使用 DDR 大页
Bus-Id PCIe 总线地址 格式 domain:bus:device.function,可据此定位物理插槽
AICore(%) AI Core 利用率 0% 表示空闲;若持续为 0 但进程存在,可能进程在等待数据
Memory-Usage(MB) DDR 内存使用 已用/总量;本服务器 DDR 容量为 0,因此始终为 0/0
HBM-Usage(MB) HBM 使用量 已用/总量;空闲时约 3300-3400 MB 为驱动保留(约 5%),65536 MB 为 64 GB 总量

下半部分为进程表,列出每张 NPU 上运行的进程 PID、进程名和 NPU 内存占用。默认模式只显示当前时刻快照。

3. 实时监控 (watch / proc)

npu-smi info watch          # 设备概览滚动刷新(类似 nvidia-smi -l 1)
npu-smi info proc           # 进程表滚动刷新

watch 和 proc 以 1 秒为间隔持续刷新,Ctrl+C 退出。适合在训练任务启动后观察 NPU 状态变化——例如确认 AI Core 利用率是否从 0% 上升到预期值,或监控温度上升趋势。

4. 拓扑查询 (-l / -m)

卡间拓扑 (-l)

npu-smi info -l

输出 8×8 矩阵,每格表示两卡间的连接类型:

标识 含义
X 自身
HCCS 专用直连链路(Huawei Cache Coherence System)
SYS 经过 PCIe + NUMA 互联(跨 SMP 系统总线,如 QPI/UPI)
PHB 经过 PCIe Host Bridge
PIX 经过单个 PCIe Switch
PXB 经过多个 PCIe Switch
NA 无法判定

本服务器 8 卡之间全部为 HCCS 直连(8 卡全互联 full mesh),不存在经过 PCIe 或 NUMA 的间接链路。这是训练集群的理想拓扑——任何两卡之间的 AllReduce 延迟完全对称,不存在跨 NUMA node 的通信瓶颈。

Chip ID 映射 (-m)

npu-smi info -m

每张物理 NPU 包含两个 Chip:Chip ID=0 为 AI 芯片(Ascend 910B3),Chip ID=1 为 MCU(管理控制单元)。Chip Logic ID 是对用户可见的逻辑编号(0-7),即 -i 参数中使用的设备号。

5. 常用查询类型速查

以下为本服务器实测数据的精选子集,按使用频率排序。

5.1 资源使用 (-t usages)

npu-smi info -t usages -i 7
字段 含义
HBM Capacity(MB) / HBM Usage Rate(%) 64 GB 总量,Usage Rate 为使用百分比(空闲 ~5% 为驱动保留)
Aicore Usage Rate(%) AI Core 利用率;0% 表示空闲,训练中可达 60-99%
Aivector Usage Rate(%) Vector Unit 利用率;通常与 AI Core 利用率同步变化
Aicpu Usage Rate(%) AI CPU 利用率;处理控制流和非矩阵算子
Ctrlcpu Usage Rate(%) 管理 CPU 利用率;负责设备调度和通信
HBM Bandwidth Usage Rate(%) HBM 带宽利用率;memory-bound 算子可使此值接近 100%

判断 NPU 是否可用的核心命令:确认 Usage Rate 为 0% 或接近 0%,且有足够 HBM 余量。

5.2 健康与错误 (-t health / -t ecc / -t pcie-err)

npu-smi info -t health -i 7     # 健康状态:OK / 异常告警码
npu-smi info -t ecc -i 7        # HBM ECC 错误详情
npu-smi info -t pcie-err -i 7   # PCIe 链路错误计数器

ECC 输出字段解读:

字段 含义 告警阈值
HBM Single Bit Error Count 可纠正单比特错误累计 > 1000/day 需关注
HBM Double Bit Error Count 不可纠正双比特错误 任何 >0 都需要硬件检查
Isolated Pages Count 已被驱动隔离的坏页数 持续增长表示 HBM 退化

本服务器所有卡 ECC 计数均为 0,PCIe TX/RX/LCRC/ECRC/Retry 计数均为 0,硬件状态健康。

5.3 物理信息 (-t board / -t memory)

npu-smi info -t board -i 7      # 卡级别硬件信息
npu-smi info -t memory -i 7     # 内存规格

board 关键字段:

字段 示例值 用途
Product Name IT21HMDC_Bin6 产品型号(IT21 表示训练卡)
Serial Number 1025A6785593 序列号,用于资产管理
PCI Vendor/Device ID 0x19E5 / 0xD802 华为 PCI Vendor ID,lspci 中可据此定位
Software Version 24.1.0.3 驱动版本
Firmware Version 7.5.0.5.220 固件版本

memory 关键字段:

字段 值 说明
HBM Capacity 65536 MB 64 GB HBM2e
HBM Clock Speed 1600 MHz 1.6 GHz,对应 ~1.54 TB/s 实测带宽
HBM Temperature 38°C 仅 HBM 颗粒温度,不同于芯片整体温度
HBM Manufacturer ID 0x57 Samsung
DDR Capacity 0 MB 本服务器 DDR 不可用

5.4 HCCS 链路状态 (-t hccs / -t hccs-bw)

npu-smi info -t hccs -i 7 -c 0    # HCCS 链路详情(需同时指定 -i 和 -c)
npu-smi info -t hccs-bw -i 7 -c 0 -time 100  # HCCS 带宽实时探测(100 ms)

hccs 输出解读(8 个 lane 按数组格式排列,[lane0 lane1 ... lane7]):

字段 本服务器值 说明
hccs health status OK 链路健康
hccs lane mode [4 4 4 4 4 4 4 4] 每个 lane 模式为 4
hccs link lane list [1111 1111 ...] 4 个 lane 全部在线(1=active)
hccs link speed [224 224 ...] 每 lane 速率 224 Gbps
hccs retry / error count 全部 0 链路无误码

lane mode 值 4 表示 4 条物理 lane 组网,link speed 224 表示单 lane 224 Gbps,合计每条 HCCS 链路带宽 = 4 × 224 Gbps = 896 Gbps ≈ 112 GB/s(全双工)。但实际 P2P 有效带宽(ascend-dmi 实测 ~26.2 GB/s)受限于协议开销、数据打包效率和内存带宽,与链路物理带宽差距较大。

[!TIP] hccs vs ascend-dmi --bw -t p2p:hccs 查看物理链路层的原始状态(lane 数、速率、误码),ascend-dmi --bw -t p2p 测量应用层的有效 P2P 带宽。如果 P2P 带宽异常偏低,先用 hccs 检查 lane 是否全部在线、是否有 retry/error 计数增长。

5.5 温度与功耗 (-t temp / -t power / -t volt)

npu-smi info -t temp -i 7       # 当前温度
npu-smi info -t power -i 7      # 实时功耗
npu-smi info -t volt -i 7       # 当前电压

温度输出包含 NPU 芯片温度(~40°C 空闲,~60°C 满载)和 MCU 温度。LM75A_TE/LM75B_TE 为板上 LM75 温度传感器的读数,用于交叉校验。持续 >85°C 会触发频率限制。

5.6 综合信息 (-t common)

npu-smi info -t common -i 7

将 usages + temp + power 的核心字段合并为一次查询,适合脚本中一键获取关键指标。额外提供 AI Core 标称频率(1800 MHz)和当前实际频率(800 MHz 空闲,1800 MHz 满载),可用于确认是否因温度或功耗限制而降频。

6. npu-smi vs ascend-dmi 分工对照

维度 npu-smi ascend-dmi
启动速度 < 0.5 s 2-5 s(需加载 DCMI 和 AscendCL)
依赖 仅驱动 驱动 + CANN toolkit
核心用途 实时状态、进程、拓扑 性能基线、压测、故障诊断
算力测试 不提供 -f 实测 TFLOPS
带宽测试 -t hccs-bw(仅 HCCS) --bw(HBM/PCIe/HCCS 全覆盖)
ECC 详情 -t ecc 完整统计 --info --detail 中有汇总
输出格式 纯文本 支持 --fmt json
最佳场景 日常巡检、确认卡状态 装机验收、性能基准、硬件排障

日常流程:npu-smi 快速确认所有卡 OK → 发现异常时用 npu-smi info -t <type> -i <id> 深入查看 → 需要定量诊断或压测时切到 ascend-dmi(详见 02_ascend_dmi_reference.md)。

7. 参考链接