华为 cann 9.0.0 安装同时支持 a2 a3 910 950pr的仿真环境 9.0.0(只支持950pr)
根据您提供的安装模板和昇腾官方文档,A2 系列实际搭载 Ascend 910B 芯片,因此 A2 与 910B 共用同一套驱动和 ops 包。以下是A2(910B)、A3、950 同时安装的完整命令行,以及仿真器的支持情况说明。
一、A2 / A3 / 950 同时安装命令(apt-get 方式)
# ========== 1. 配置用户属组(只需执行一次) ==========sudogroupaddHwHiAiUsersudouseradd-gHwHiAiUser-d/home/HwHiAiUser-mHwHiAiUser-s/bin/bash# ========== 2. 安装依赖 & 配置软件源(只需执行一次) ==========wgethttps://ascend.devcloud.huaweicloud.com/cann/debian/cann-keyring_1.0.0_all.debsudodpkg-icann-keyring_1.0.0_all.debsudoapt-getupdatesudoapt-getinstall-ygcc python3 python3-pip linux-headers-$(uname-r)# ========== 3. 安装 NPU 驱动(按实际芯片选择,开发机可全装) ==========# A2 系列(Atlas 800T A2 / 800I A2 等,芯片为 910B)sudoapt-getinstallascend910b-driver=26.0.rc1# A3 系列sudoapt-getinstallatlas-a3-hdk-npu-driver=26.0.rc1# 950 系列(Atlas A5 / 950 PR)sudoapt-getinstallatlas-a5-hdk-npu-driver=25.7.rc1# ========== 4. 安装 CANN Toolkit(只需一个) ==========sudoapt-getinstallascend-cann-toolkit=9.0.0# ========== 5. 安装各芯片算子包(ops 可同时安装,互不影响) ==========sudoapt-getinstallascend-cann-910b-ops=9.0.0# A2 / 910Bsudoapt-getinstallascend-cann-a3-ops=9.0.0# A3sudoapt-getinstallascend-cann-950-ops=9.0.0# 950 / A5# ========== 6. 配置环境变量 ==========source/usr/local/Ascend/cann/set_env.sh# ========== 7. 验证安装 ==========python3-c"import acl; print(acl.get_soc_name())"说明:
- 驱动需按实际插入的硬件安装;若作为交叉编译开发机,可同时安装多套驱动包。
- A2 系列整机(Atlas 800T A2、Atlas 800I A2 等)在软件包体系中归类为910B平台,因此使用
ascend910b-driver和ascend-cann-910b-ops。
二、仿真器(Simulator)安装与使用
1. 支持范围(CANN 9.0)
CANN 9.0 自带的CANN Simulator 目前仅支持 Ascend 950PR,且已集成在ascend-cann-toolkit中,无需额外安装驱动/固件。
| 芯片 | CANN 9.0 Simulator 支持情况 |
|---|---|
| A2 (910B) | ❌ 不支持 |
| A3 | ❌ 不支持 |
| 950PR | ✅ 支持 |
2. 950PR 仿真命令示例
安装 toolkit 并 source 环境变量后,直接使用cannsim:
# 进入算子/应用可执行文件所在目录# 以算子仿真为例cannsim record ./test_aclnn_add_example-sAscend950 --gen-report- 仿真日志默认生成在
./cannsim_*目录下。 - 约束:仅支持单卡场景(设备号必须固定为 0),不支持 MC2 / HCCL 类算子,且目前不支持 ARM 环境仿真。
3. A2 / A3 无硬件开发建议
若需在无实体 NPU 的情况下进行 A2 / A3 开发调试,可考虑以下替代方案:
| 方案 | 说明 |
|---|---|
| 旧版仿真驱动 | 下载Ascend-sim-driver-7.0.0等历史版本,仅用于功能验证(无加速能力)。 |
| CPU 模拟模式 | 编译时指定-DASCEND_COMPUTE_UNIT=cpu(Camodel),在 CPU 上模拟运行。 |
| 华为云昇腾实例 | 使用华为云提供的昇腾 ECS / ModelArts 进行远程真机开发。 |
三、快速验证清单
# 查看已安装的驱动dpkg-l|grep-E"ascend|atlas"# 查看已安装的 CANN 组件dpkg-l|grepascend-cann# 查看 NPU 设备(需有实体硬件或仿真驱动)npu-smi info# 查看 ACL 能识别到的芯片型号python3-c"import acl; print(acl.get_soc_name())"如需安装NNAL(昇腾神经网络加速库,用于大模型推理加速),可额外执行:
sudoapt-getinstallascend-cann-nnal=9.0.0source/usr/local/Ascend/nnal/atb/set_env.sh **现状:CANN9.0官方`cannsim`目前不支持 A2 / A3 仿真**,仅支持 Ascend 950PR。 但 CANN9.0为 A2 / A3 提供了其他**无硬件开发调试**途径,以下是可行方案: ---### 方案一:CPU 仿真模式(Camodel / 孪生调试)⭐ 推荐CANN9.0的 Ascend C 算子开发支持 **CPU 与 NPU 孪生调试**。在 CPU 模式下,系统会创建一个 NPU 的软件模型来模拟计算行为,**相同的算子代码可在 CPU 模式下调试精度,再无缝切换到 NPU 真机运行**。 **启用方式(算子开发场景):** ```bash# 1. 编译时指定 CPU 模式cmake-DASCEND_COMPUTE_UNIT=cpu..make# 2. 或直接运行可执行文件时去掉 --device 参数# CANN 会自动启用 CPU 仿真模式./your_op_executable适用场景:
- Ascend C 自定义算子的功能验证、精度调试
- 不依赖真实 NPU,可在普通 x86/ARM 服务器上运行
- 支持 GDB 单步调试
限制:
- 仅用于功能/精度验证,不具备硬件加速能力,运行速度远低于真机
- 不支持多卡通信(HCCL)类算子仿真
方案二:CANN Runtime CAModel(纯软件运行时仿真)
CANN Runtime 内置的CAModel(libruntime_camodel.so)是 Runtime 的纯软件仿真实现,可在无 NPU 硬件的机器上完整模拟 Runtime API 行为(设备打开、内存分配、流/事件管理、任务调度等)。
特点:
- 指令级仿真由
libcamodel.so+libtsch_camodel.so完成 - 适合应用级调试(ACL 接口调用、内存管理、流同步等)
- 无需安装额外驱动,Toolkit 安装后通过环境变量切换即可
启用方式:
# 设置使用 CAModel 运行时(具体路径以实际安装为准)exportLD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/lib64:$LD_LIBRARY_PATH# 部分版本需显式指定 backendexportASCEND_RUNTIME_MODEL=CAModel方案三:旧版仿真驱动(Ascend-sim-driver)
如果需要在无硬件环境下让npu-smi等工具识别到模拟设备,可安装旧版仿真驱动(如Ascend-sim-driver-7.0.0),但版本较老,与 CANN 9.0 的新特性兼容性未知,仅建议用于基础工具链验证。
tar-zxvfAscend-sim-driver-7.0.0-linux-x86_64.tar.gz-C~/ascend-sim-drivercd~/ascend-sim-driver ./install.sh--sim# 配置环境变量exportASCEND_DRIVER_PATH=~/ascend-sim-driverexportLD_LIBRARY_PATH=$ASCEND_DRIVER_PATH/lib64:$LD_LIBRARY_PATH# 验证npu-smi info# 应显示 Simulator 模式方案四:回退到 CANN 8.0 的 CAModel 性能仿真
如果必须进行指令级性能仿真(查看 cycle 数、指令流水图),CANN 8.0 提供了ascendebug kernel --backend simulator支持 CAModel 性能仿真。
但 CANN 9.0 的cannsim已替代旧工具,且仅支持 950PR。若 A2/A3 的指令级仿真是刚需,目前只能:
- 在CANN 8.0环境下使用
ascendebug进行 CAModel 仿真 - 或等待华为后续版本扩展
cannsim的芯片支持范围
总结对比
| 方案 | 支持 A2/A3 | CANN 9.0 | 功能验证 | 性能仿真 | 适用场景 |
|---|---|---|---|---|---|
| CPU 仿真 / 孪生调试 | ✅ | ✅ | ✅ | ❌ | 算子开发、精度调试 |
| Runtime CAModel | ✅ | ✅ | ✅ | ❌ | 应用级 ACL 调试 |
| 旧版 sim-driver | ⚠️ 老版本 | ⚠️ 兼容性未知 | ✅ | ❌ | 基础工具链验证 |
| CANN 8.0 ascendebug | ✅ | ❌(需 8.0) | ✅ | ✅ | 指令级性能分析 |
建议:
- 如果是算子开发,直接用 CANN 9.0 的CPU 孪生调试(
-DASCEND_COMPUTE_UNIT=cpu)。 - 如果是应用开发,使用Runtime CAModel或华为云昇腾实例。
- 如果需要性能仿真(cycle 级),目前 CANN 9.0 对 A2/A3 尚不支持,需用 CANN 8.0 的
ascendebug或等待官方更新。
## ascend-cann-910b-ops E: Sub-process /usr/bin/dpkg returned an error code (1) 这个错误是因为 `ascend-cann-910b-ops` 的 `post-installation` 脚本在执行时需要**交互式确认 EULA**(最终用户许可协议),但你的终端/脚本环境无法弹出交互提示,导致脚本返回错误状态 1。 以下是几种解决方案,按推荐程度排序: --- ### 方案一:使用 `yes` 管道自动输入 Y(最稳妥) ```bash # 先清理之前失败的安装状态 sudo dpkg --configure -a sudo apt-get -f install # 用 yes 自动回答 EULA 提示 yes | sudo apt-get install -y ascend-cann-910b-ops=9.0.0方案二:设置非交互式前端
# 清理失败状态sudodpkg--configure-a# 使用 DEBIAN_FRONTEND=noninteractive 自动接受sudoDEBIAN_FRONTEND=noninteractiveapt-getinstall-yascend-cann-910b-ops=9.0.0注意:如果 ops 包的 postinst 脚本是自定义实现(不遵循标准 Debian 前端协议),此方法可能无效,此时请用方案一。
方案三:如果 dpkg 状态已损坏,强制修复后重装
# 1. 查看具体错误日志cat/var/log/ascend_seclog/ascend_install.log# 2. 移除失败的包配置状态sudodpkg--remove--force-remove-reinstreq ascend-cann-910b-ops# 3. 重新安装yes|sudoapt-getinstall-yascend-cann-910b-ops=9.0.0方案四:改用 .run 离线包安装(绕过 deb EULA 交互)
如果 apt/deb 方式始终因 EULA 交互失败,建议从昇腾官网下载对应版本的runfile包,使用--quiet参数静默安装:
# 下载地址参考:https://www.hiascend.com/developer/download/community/result?module=cannchmod+x Ascend-cann-910b-ops_9.0.0_linux-$(uname-m).run ./Ascend-cann-910b-ops_9.0.0_linux-$(uname-m).run--install--quiet华为官方 Dockerfile 中也是采用这种方式避免交互问题。
补充:A3 / 950 的 ops 包安装
如果后续安装 A3 和 950 的 ops 包也遇到同样问题,统一用yes管道:
yes|sudoapt-getinstall-yascend-cann-a3-ops=9.0.0yes|sudoapt-getinstall-yascend-cann-950-ops=9.0.0推荐你先执行方案一,如果仍报错,请把/var/log/ascend_seclog/ascend_install.log中的最后 20 行贴出来,可以进一步定位。
# 查看昇腾安装日志最后 20 行sudotail-n20/var/log/ascend_seclog/ascend_install.log# 如果上面文件不存在,查找所有相关日志sudofind/var/log-name"*ascend*"-typef2>/dev/null|head-10# 查看 dpkg 处理该包时的具体报错sudogrep-n"ascend-cann-910b-ops"/var/log/dpkg.log|tail-20根据你提供的日志,问题很清晰:
ascend-cann-910b-ops目前处于half-configured(半配置)状态post-installation脚本卡在EULA 交互确认上,非交互环境无法输入Y- 日志中
oam-tools/Aoe的卸载失败是历史残留,不影响当前修复
修复步骤
第一步:清理 dpkg 锁死状态
sudodpkg--configure-a如果上面命令又卡住问 EULA,按Ctrl+C中断,然后执行:
sudodpkg--remove--force-remove-reinstreq ascend-cann-910b-opssudoapt-getcleansudoapt-getupdate第二步:用yes管道强制自动回答 Y 后重装
yes|sudoapt-getinstall-yascend-cann-910b-ops=9.0.0第三步:验证修复
dpkg-l|grepascend-cann-910b-ops状态应显示为ii(已安装且已配置)。
如果yes管道仍失败
说明该包的 postinst 脚本不读取 stdin,而是直接调用了read -p之类的方式。此时可以手动执行 postinst:
# 1. 先让 dpkg 跳过配置sudodpkg--unpack/var/cache/apt/archives/ascend-cann-910b-ops_9.0.0_*.deb# 2. 手动执行 postinst,强制传入 Yecho"Y"|sudo/var/lib/dpkg/info/ascend-cann-910b-ops.postinst configure或者更直接的方式——改用 runfile 包安装(华为官方推荐用于自动化/容器场景):
# 从华为官网下载对应 runfilewgethttps://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%209.0.0/Ascend-cann-910b-ops_9.0.0_linux-x86_64.runchmod+x Ascend-cann-910b-ops_9.0.0_linux-x86_64.run ./Ascend-cann-910b-ops_9.0.0_linux-x86_64.run--install--quiet
--quiet参数会自动接受 EULA,无需交互。
补充:A3 / 950 ops 包建议统一用 runfile 安装
为避免同样问题,后续安装 A3 和 950 的 ops 包时,建议也使用 runfile:
./Ascend-cann-a3-ops_9.0.0_linux-x86_64.run--install--quiet./Ascend-cann-950-ops_9.0.0_linux-x86_64.run--install--quiet请先试yes | sudo apt-get install -y ascend-cann-910b-ops=9.0.0,如果还有报错,把sudo tail -n 30 /var/log/ascend_seclog/ascend_ops_910b_install.log的输出贴给我。