跳到主要内容
昇腾AI芯片与算子开发

2.6 npu-smi:设备管理与常见环境排障

掌握 npu-smi 这个昇腾版 nvidia-smi:读懂设备信息、监控算力与显存、查看进程与拓扑,并用它快速定位驱动版本、健康状态等环境故障

npu-smi 设备管理 故障排查 监控

如果你用过 nvidia-smi,那么 npu-smi 会让你感到亲切——它们是同一个角色的工具:设备层的「体检报告」。AI Infra 工程师每天第一件事就是看它:卡在不在、健康不健康、显存够不够、谁在占用。学会读 npu-smi,等于学会了昇腾排障的第一语言。

📑 目录


1. npu-smi 是什么

npu-smi(NPU System Management Interface)是昇腾提供的设备管理工具,随驱动一起安装,用于查看 NPU 设备状态、执行管理操作、查询版本信息。

对标关系一目了然:

功能NVIDIA昇腾
设备概览nvidia-sminpu-smi info
进程占用nvidia-sminpu-smi info -t process
拓扑查询nvidia-smi topo -mnpu-smi info -t topo
温度功耗nvidia-smi -qnpu-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)字段就是当前驱动/固件版本。版本核对做两件事:

  1. 对照配套表:确认驱动版本在 CANN 版本的配套范围内。
  2. 记录基线:每次升级前记录当前版本,出问题时能快速判断「是不是升级导致的」。

排障口诀:版本不对 → 一切皆有可能。任何诡异问题,先怀疑驱动与 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 已加载。
  • 硬件层与软件层分开排查,配合安装日志与运行日志定位,能解决绝大多数环境问题。

延伸阅读