第3章 驱动与固件安装

驱动和固件,说白了就是让昇腾芯片“活”起来的东西。没有它们,你的NPU就是一坨高级硅片。我刚开始接触昇腾平台时,觉得装个驱动能有多难?结果第一次就在固件版本上栽了跟头……嗯,这一章咱们就把这些坑填平。

驱动固件 驱动包获取 驱动安装流程 固件升级方法 安装后验证 npu-smi 驱动 + 固件 = 昇腾芯片的“操作系统”

3.1 驱动包获取

驱动包去哪找?我个人习惯直接上昇腾社区官网的“软件包”页面。注意,别去第三方站点下,版本混乱不说,还可能带毒。

💡 我的小经验:下载前先看一眼 release notes。我曾经因为没看,下了个不支持我芯片型号的驱动,白折腾半小时。

3.2 驱动安装流程

拿到.run文件后,安装其实就几步。但顺序错了容易出问题。我一般这么干:

  1. 检查系统:uname -m 确认是 aarch64 或 x86_64
  2. 给驱动包加执行权限:chmod +x Ascend-hdk-*.run
  3. 运行安装:./Ascend-hdk-*.run --full --install
  4. 等待进度条走完,一般3~5分钟
# 典型安装命令(以310P为例)
sudo ./Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run --full --install
⚠️ 注意:安装过程中不要中断终端或断电。我曾经在客户现场遇到断电,驱动写到一半,芯片差点变砖。后来只能进维护模式重刷。

安装完成后,建议重启一下系统。虽然有些模块可以动态加载,但我发现重启后设备节点更干净。

3.3 固件升级方法

固件和驱动是两回事。驱动是软件层,固件是芯片内部的微码。升级固件要更小心——搞不好就真变砖了。

# 使用 npu-smi 升级固件(示例)
npu-smi upgrade -t firmware -i 0 -f ./Ascend310P-firmware_23.0.1.run

升级过程中芯片会短暂离线,业务会中断。所以生产环境一定要窗口期操作。我记得有一次在测试环境升级固件,忘了停推理服务,结果模型推理全部报错……嗯,长记性了。

3.4 安装后验证(npu-smi)

装完驱动和固件,怎么知道成没成功?用 npu-smi 看一眼就明白了。这工具是昇腾的“任务管理器”,类似 NVIDIA 的 nvidia-smi。

🔍 验证三板斧:
  1. npu-smi info —— 查看芯片型号、驱动版本、固件版本
  2. npu-smi health —— 检查芯片健康状态
  3. npu-smi topo —— 查看拓扑(多卡场景)
# 典型输出示例
npu-smi info
+----------------------------------------------------------------------------+
| npu-smi 23.0.1                    Version: 23.0.1                           |
+----------------------+---------------+--------------------------------------+
| NPU   Name           | Health        | Power(W)    Temp(C)                  |
| 0     310P           | OK            | 12.5        45                       |
+----------------------+---------------+--------------------------------------+

如果看到 Health: OK,驱动和固件基本就稳了。如果显示 Unhealthy 或者找不到NPU,先检查驱动是否加载:lsmod | grep drv。

💡 避坑指南:我曾经遇到一次 npu-smi info 卡死,后来发现是内核模块版本和固件不匹配。重新安装匹配版本就好了。所以驱动和固件最好一起升级,别混搭。

嗯,驱动与固件安装这部分,说白了就是“下载-安装-验证”三步。但每一步都有细节。你想想看,如果驱动版本不对,后面CANN装得再漂亮也没用。所以这一章我建议你亲手操作一遍,哪怕在虚拟机里也行。