东方智慧AI 算力
AI算力 · 部署指南

A 层部署指南 · L0 硬件与环境

2026-10-05

一页读懂这一层:让系统认得那张卡。 这一层只有两样东西要装:驱动和固件。装完的标准就一条:npu-smi 能打出表。

本指南是 A 层 4 课的浓缩版(A0 地图 / A1 驱动固件 / A2 产品线 / A3 HDK), 只保留"装什么、干什么用、怎么装、怎么验"。要看原理和排障细节,回原课件。


一、这一层的职能

项 内容
层号 L0(最底层)
一句话职责 真正的计算在这里发生。这一层的任务是"让系统认得这张卡"。
典型角色 系统管理员 / 交付工程师,上电后第一个要动的地方
上电后的第一件事 npu-smi info —— 有表 = 这一层通了
拿掉它会怎样 系统里根本看不到这张卡;npu-smi 命令可能直接不存在
它上面是谁 L1 基础软件(CANN)—— L0 不对,L1 全废

二、这一层装什么(软件清单)

就两样东西:

装什么 官方包名 装在哪
驱动(HDK 驱动包) Ascend-hdk-<型号>-npu-driver_<版本>_linux-<架构>.run 默认 /usr/local/Ascend
固件(firmware) Ascend-hdk-<型号>-npu-firmware_<版本>_linux-<架构>.run 同上

⭐ 装一个驱动包,你会额外得到四个工具(这是"HDK"这个词的来历):

工具 一句话职责 怎么用 谁最需要
npu-smi 设备管理 命令行 所有人(日常就靠它)
DCMI 设备管理 API 调用 做管理平台的开发者
hccn_tool 集群网络管理 命令行 多卡 / 超节点运维
msnpureport Device 侧日志导出 命令行 排障

四个都是"装驱动时默认装上的" —— 这就是它们被统称 HDK 的原因。


三、每个东西干什么用(一句话)

东西 一句话功能 记住它的方式
驱动 让操作系统认得这张卡(提供设备节点、管理接口) 好比"系统侧的桥"
固件 卡自己运行的底层程序 好比"卡自己的底子"
npu-smi 查卡、查版本、查进程、查温度功耗 上电后第一条命令
DCMI 把 npu-smi 的能力做成 API 给程序调用,不是给手敲
hccn_tool 管集群网络(多卡互联) 单卡用不上
msnpureport 把卡侧的日志导到主机上 出问题时要它

⭐ 一句话分清驱动与固件:

驱动是"系统侧"的,固件是"卡侧"的。两个都要装,缺一个都不完整。


四、怎么装(安装方法)

⭐⭐ 第一条铁律:顺序不能反

场景 顺序
首次安装 先驱动 → 后固件
覆盖安装 / 升级 先固件 → 后驱动

一句话记法:

第一次:驱动在前。之后每次:固件在前。

⚠️ 顺序反了的症状往往不是"装失败",而是各种奇怪的行为异常 —— 最难查。

三条命令装完(驱动与固件都一样)

命令 chmod +x <安装包>

含义:给安装包加"可执行"权限 拆解:chmod(改权限)+ +x(加执行位) 用法:chmod +x Ascend-hdk-<型号>-npu-driver_<版本>_linux-aarch64.run 期望:无输出(成功即沉默) 不过会怎样:不加就报 Permission denied

命令 ./<安装包>.run --check

含义:只校验不安装 —— 查安装包完整性与一致性(SHA256) 拆解:--check(校验模式) 用法:./Ascend-hdk-<型号>-npu-driver_<版本>_linux-aarch64.run --check 期望:Verifying archive integrity... 100% SHA256 checksums are OK. All good. 不过会怎样:校验不过 → 重新获取安装包,不要硬装

命令 ./<安装包>.run --full

含义:完整安装 拆解:--full(完整安装模式) 用法:./<安装包>.run --full 期望:安装成功回显 不过会怎样: - 需要指定路径 → 加 --install-path=/your/path/ - 非 root 用户也要用 → 加 --install-for-all - 安装日志在 /var/log/ascend_seclog/ascend_install.log

⚠️ --install-for-all:用了就一直用

官方原文:首次安装过程中如果使用了 --install-for-all 参数,建议覆盖安装中也保留, 否则会导致 NPU 设备权限变更。

它决定的是:这张卡是只有 root 能用,还是所有人都能用。 中途变了的后果:普通用户突然跑不动了 —— 而你会以为是别的问题。

⚠️ 三种部署场景,装的位置不一样(高频踩坑点)

你的服务部署在 要装什么
物理机 在物理机装驱动 + 固件即可
虚拟机 先在物理机装驱动和固件,再在虚拟机内装驱动(多一层)
容器 先在物理机装驱动和固件,再在容器内装驱动(多一层)

⭐ 这一条解释了高频现象: "我在容器里跑不起来,报找不到设备" —— 十有八九是只装了物理机的,没在容器里再装一层。


五、怎么验证装对了(验证方法)

三步确认(全用官方命令)

命令 npu-smi info

含义:总览所有卡 —— 这一层通了的最直接证据 期望:一张表,每张卡 Health 为 OK,有型号、温度、功耗、显存、进程 不过会怎样:command not found → 驱动没装(驱动包 = 驱动 & npu-smi 工具包)

命令 npu-smi info -l

含义:列出所有设备,拿到设备编号(NPU ID) 期望:列出设备列表及各自的 NPU ID 不过会怎样:列表为空 → 驱动没挂载好 ⭐ 记法:这里查出的 NPU ID,就是后面 -i 要填的值

命令 npu-smi info -t product -i <NPU ID>

含义:看这是什么产品 拆解:-t product(查什么:产品类型)+ -i <NPU ID>(查哪台) 期望:输出含 Product Type(如 Atlas 500 A2) 不过会怎样:报设备不存在 → 回上一条重查 ID

命令 npu-smi info -t board -i <NPU ID>

含义:看驱动版本与固件版本 —— 验证的核心 期望:Software Version(驱动版本)与 Firmware Version(固件版本)都有值,且与你装的对得上 不过会怎样:字段为空或版本不对 → 装的时候顺序可能反了,或者只装了一个

⭐ 验收清单(四条全过 = 这一层完工)

# 判据 命令 通过标准
① 系统认得卡 npu-smi info 有表,Health = OK
② 设备编号明确 npu-smi info -l 拿到 NPU ID
③ 型号确认 npu-smi info -t product -i <ID> Product Type 是预期型号
④ 版本对上 npu-smi info -t board -i <ID> 驱动/固件版本都有值且装的是这个版本

⚠️ 容器/虚拟化环境注意:设备编号可能不是 0(只透传了部分卡)。 一律先跑 npu-smi info -l 拿到真实编号,不要硬写 -i 0。


六、三个最容易踩的坑

# 坑 症状 怎么办
1 驱动/固件顺序反了 不是"装失败",而是各种奇怪的行为异常 记牢:首次驱动在前,之后固件在前
2 容器里没装那一层驱动 报找不到设备 物理机装完,容器/虚拟机里再装一次驱动
3 --install-for-all 中途变了 普通用户突然跑不动了 要么一直用,要么一直不用

⚠️ 还有一个"看起来像故障但不是"的: 容器里 /etc/ascend_install.info 看不到 —— 不代表驱动没装。 判据要用"命令能不能跑"(npu-smi info 有输出=驱动在),不用文件存在性判。


七、这一层和其他层的关系

↑ L1 基础软件(CANN)    ← 依赖 L0;L0 不对,L1 装了也用不了
│
│  ★ 你在这一层          装:驱动 + 固件(+ 四个工具)
│                        验:npu-smi info 有表
│
↓ 硬件(昇腾卡)           ← 这一层管的就是它
关系 说明
它依赖谁 无(最底层,直接对着硬件)
谁依赖它 L1 / L2 / L3 全部 —— 它的判据不通,上面一律免谈
上一层怎么验 echo $ASCEND_HOME_PATH 有值(CANN 生效)

附 · 命令速查(复制即用)

# 装
chmod +x <安装包>.run
./<安装包>.run --check                 # 校验
./<安装包>.run --full                  # 安装(非 root 也要用:加 --install-for-all)
./<安装包>.run --full --install-path=/your/path/

# 验
npu-smi info                            # 总览(Health 应为 OK)
npu-smi info -l                         # 设备列表 → 拿 NPU ID
npu-smi info -t product -i <NPU ID>     # 产品型号
npu-smi info -t board -i <NPU ID>       # 驱动/固件版本
npu-smi -v                              # npu-smi 工具自身版本(不是卡的版本)

# 四个工具都在不在
which npu-smi hccn_tool msnpureport

日志位置:安装日志 /var/log/ascend_seclog/ascend_install.log


附 · 本层的"包从哪下"

要下什么 地址
驱动 / 固件 https://www.hiascend.com/hardware/firmware-drivers
包名规律 驱动 Ascend-hdk-{型号}-npu-driver_{版本}_linux-{架构}.run
固件 Ascend-hdk-{型号}-npu-firmware_{版本}_linux-{架构}.run

⚠️ 下之前先确认三件事: 1. 架构(uname -m:aarch64 还是 x86_64)—— 下错装不上 2. 操作系统 + 内核版本(cat /etc/os-release / uname -r)—— 驱动包把内核版本编进去了 → 对不上要先装编译依赖,或换版本 3. 型号(npu-smi info -t product -i <ID>,或按整机型号对官方产品表)


本层浓缩自:昇腾部署课件_A0_一张地图 / _A1_驱动与固件 / _A2_产品线与形态 / _A3_HDK是什么 下一层:B 层 · L1 基础软件(CANN)

选修 · 昇腾 AI 部署实操 本机读完 0/51
选修 C · 昇腾 AI 部署实操
从零把昇腾 AI 部署学一遍:先看懂分几层,再逐层装起来,最后出问题能自己定位到哪一层。不需要先有卡就能开始。
看完整学习路径(6 站 + 3 门选修) · 进度只存在你这台设备的浏览器里,不用登录
辽ICP备2026019944号-1