2.6 npu-smi:设备管理与常见环境排障
掌握 npu-smi 这个昇腾版 nvidia-smi:读懂设备信息、监控算力与显存、查看进程与拓扑,并用它快速定位驱动版本、健康状态等环境故障
如果你用过 nvidia-smi,那么 npu-smi 会让你感到亲切——它们是同一个角色的工具:设备层的「体检报告」。AI Infra 工程师每天第一件事就是看它:卡在不在、健康不健康、显存够不够、谁在占用。学会读 npu-smi,等于学会了昇腾排障的第一语言。
📑 目录
1. npu-smi 是什么
npu-smi(NPU System Management Interface)是昇腾提供的设备管理工具,随驱动一起安装,用于查看 NPU 设备状态、执行管理操作、查询版本信息。
对标关系一目了然:
| 功能 | NVIDIA | 昇腾 |
|---|---|---|
| 设备概览 | nvidia-smi | npu-smi info |
| 进程占用 | nvidia-smi | npu-smi info -t process |
| 拓扑查询 | nvidia-smi topo -m | npu-smi info -t topo |
| 温度功耗 | nvidia-smi -q | npu-smi info 字段 |
2. 读懂 npu-smi info 的输出
执行 npu-smi info 会得到一张设备总表,核心字段按「设备 → 芯片 → 状态」三层组织:
| 字段 | 含义 |
|---|---|
| Chip | 芯片编号,如 0~7(对应 8 卡) |
| Name | 芯片型号,如昇腾 910B |
| Health | 健康状态(OK 为正常) |
| Power | 实时功耗(W) |
| Temp | 芯片温度(°C) |
| HBM | 高带宽内存容量与已用(如 64G / 63G) |
| AI Core | 算力资源占用情况(部分版本展示) |
一眼判断环境是否健康的顺序:Health 是否 OK → Temp 是否过热 → HBM 是否接近满载。
说明:不同驱动版本的字段布局略有差异,个别字段(如 AI Core 占用)以你安装的驱动版本输出为准。
3. 常用查询命令
| 需求 | 命令 |
|---|---|
| 查看全部设备 | npu-smi info |
| 查看指定芯片 | npu-smi info -i <id> -c <chip_id> |
| 查看进程占用 | npu-smi info -t process |
| 查看算力/内存使用 | npu-smi info -t usages |
| 查看板卡信息 | npu-smi info -t board |
| 查看芯片间拓扑 | npu-smi info -t topo |
进程占用表对排查「谁把显存吃满了」最有用:能看到每个进程占用的 HBM 与算力,kill 掉失控进程前先看清它属于谁。
4. 健康检查与版本核对
npu-smi info 里的 Software Version(VOS)字段就是当前驱动/固件版本。版本核对做两件事:
- 对照配套表:确认驱动版本在 CANN 版本的配套范围内。
- 记录基线:每次升级前记录当前版本,出问题时能快速判断「是不是升级导致的」。
排障口诀:版本不对 → 一切皆有可能。任何诡异问题,先怀疑驱动与 CANN 不配套。
5. 常见环境故障排查
现象 1:npu-smi 找不到设备(报错无卡信息)
- 驱动是否已安装?
ls /usr/local/Ascend/driver检查。 - 是否缺固件?补装固件后再看。
- 内核更新导致驱动失效?内核升级后必须重装驱动,这是最隐蔽的坑。
现象 2:容器内 npu-smi 看不到设备
- 容器启动时是否映射了
/dev/davinci*设备节点?见 2.5 的容器命令。 - 是否用了昇腾容器运行时?普通
docker run不会自动透传 NPU。
现象 3:程序报「设备不存在 / driver not initialized」
- 先用
npu-smi info确认设备层 OK,再把问题定位到 CANN 层。 - 检查
ASCEND_HOME_PATH与set_env.sh是否加载。
现象 4:显存不足 OOM
npu-smi info -t process看谁占满;HBM 只有几十 GB,比 GPU 显存更稀缺,训练时尤其要盯。
6. 日志与诊断工具
当 npu-smi 显示正常但程序仍报错时,需要更深的日志:
- 驱动/固件安装日志:
/var/log/ascend_install.log等,安装失败时从这里找原因。 - CANN 运行日志:通过环境变量开启(如
ASCEND_GLOBAL_LOG_LEVEL),日志级别与输出路径以官方文档为准。 - 环境检查脚本:昇腾提供环境自检工具,可一次扫描版本配套、环境变量、依赖项。
原则:先用
npu-smi定位「硬件层」,再用日志定位「软件层」,两层分开排查,不要混在一起猜。
总结
npu-smi是昇腾设备层的「体检报告」,对标nvidia-smi,健康检查看 Health/Temp/HBM 三件。- 版本核对(驱动 ↔ CANN 配套)是排障的第一步,内核升级后必须重装驱动。
- 容器看不到设备,九成是设备节点没映射;程序报环境错误,先确认
set_env.sh已加载。 - 硬件层与软件层分开排查,配合安装日志与运行日志定位,能解决绝大多数环境问题。