【CANN 实战】3 分钟搞定昇腾 CANN 环境初次部署:从踩坑到成功运行的全流程记录
版本不匹配坑:Toolkit 版本必须与昇腾驱动版本对应(官网有 “版本配套表”),比如驱动装了 6.0,Toolkit 装 7.0 会直接报错;权限不足坑:安装 Toolkit 和运行代码时,用sudo -i切换 root 用户,避免普通用户无权限访问设备;Python 版本坑:CANN 7.0 只支持 Python 3.7-3.9,用 Python 3.10 会提示 “no module na
在 AI 框架与硬件加速领域,昇腾 CANN(Compute Architecture for Neural Networks)作为华为面向昇腾芯片的异构计算架构,一直是开发者关注的焦点。但不少初次接触的同学会被 “异构计算”“算子适配” 等概念劝退,尤其在环境部署环节容易踩坑。本文以真实操作流程为核心,用小白能懂的语言,带大家完成 CANN 环境的初次部署与基础验证,确保跟着做就能成功。
一、前置认知:先搞懂 CANN 到底是 “啥”?
在部署前先澄清一个常见误解:CANN 不是 AI 框架,而是 “桥梁”。简单说,它一边连接 TensorFlow/PyTorch 等 AI 框架,另一边连接昇腾芯片(如 Atlas 200I),负责把框架的计算需求翻译成芯片能看懂的指令,同时提供算子库、性能优化工具等能力。
对我们开发者而言,初次接触只需关注两个核心组件:
- Ascend Toolkit:CANN 的开发工具包,包含编译工具、调试工具、算子库,是部署的核心;
- Ascend Device Plugin(可选):如果用 Docker 部署,需要这个插件让容器识别昇腾硬件。
本次部署环境:
| 组件 | 版本 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 20.04 LTS | 昇腾官方推荐,兼容性最好 |
| 昇腾硬件 | Atlas 200I DK A2 | 开发者常用的入门级开发板 |
| CANN Toolkit | 7.0.RC1.alpha003 | 2024 年稳定版,适配主流框架 |
| Python | 3.8 | Toolkit 对 Python 版本有严格要求 |
二、部署全流程:从环境检查到成功运行
步骤 1:硬件与系统预处理(避坑重点!)
很多人第一步就卡在这里 ——硬件没认到。先执行以下命令检查昇腾设备是否被系统识别:
bash
lspci | grep -i ascend
验证是否配置成功:执行atc --version,若显示 Toolkit 版本信息,则环境变量配置正确。
- ✅ 成功识别:会显示类似 “00:0c.0 Processing accelerators: Huawei Technologies Co., Ltd. Ascend 310” 的信息;
- ❌ 未识别:检查开发板供电是否正常、PCIe 插槽是否插紧,或重新安装昇腾驱动(驱动需与 Toolkit 版本匹配,官网可查)。
-
步骤 2:安装 CANN Toolkit(核心步骤)
官方文档写得较复杂,这里简化为 3 条关键命令,注意所有操作需用 root 权限:
- 下载 Toolkit 安装包:从昇腾官网下载对应版本(选择 “Ubuntu 20.04 + x86_64”,文件格式为.run);

- 赋予执行权限:
bash
chmod +x Ascend-Toolkit-7.0.RC1.alpha003-linux-x86_64.run - 静默安装(避免图形化界面报错):
bash
安装完成后,会提示 “Install successfully”。./Ascend-Toolkit-7.0.RC1.alpha003-linux-x86_64.run --install --install-path=/usr/local/Ascend --chip=ascend310 -
步骤 3:配置环境变量(必做,否则命令无效)
Toolkit 安装后不会自动配置环境,需手动添加到
~/.bashrc文件: - 打开配置文件:
bash
vim ~/.bashrc - 在文件末尾添加以下内容(路径需与安装路径一致):
bash
# CANN环境变量 export ASCEND_TOOLKIT_PATH=/usr/local/Ascend/ascend-toolkit/latest export LD_LIBRARY_PATH=$ASCEND_TOOLKIT_PATH/lib64:$LD_LIBRARY_PATH export PATH=$ASCEND_TOOLKIT_PATH/bin:$PATH - 生效配置:
bash
source ~/.bashrc
步骤 4:跑通第一个 CANN 示例 —— 算子功能验证
环境搭好后,用官方最简单的 “Add 算子” 示例验证是否能正常工作(算子是 CANN 的最小计算单元,Add 就是做加法运算)。
-
创建测试目录并编写代码(新建
test_add.py):python
import numpy as np from ascendcl import * # CANN的Python接口 # 1. 初始化CANN环境 aclInit() # 2. 创建设备上下文(指定设备0,若只有1块芯片则为0) device_id = 0 aclrtCreateContext(None, device_id) # 3. 定义输入数据(两个1x2的数组) input1 = np.array([1, 2], dtype=np.float32) input2 = np.array([3, 4], dtype=np.float32) output = np.zeros_like(input1) # 4. 调用CANN的Add算子计算 aclopExecute("Add", 2, [input1, input2], 1, [output], None, None) # 5. 打印结果 print("CANN Add算子计算结果:", output) # 6. 释放资源 aclrtDestroyContext(device_id) aclFinalize() -
运行代码:
bash
python3 test_add.py - ✅ 成功输出:
CANN Add算子计算结果:[4. 6.],说明 CANN 环境能正常调用算子; - ❌ 报错解决:若提示 “ascendcl.so not found”,重新执行
source ~/.bashrc;若提示 “device not found”,检查步骤 1 的硬件识别情况。
三、初次部署踩坑总结(新手必看)
版本不匹配坑:Toolkit 版本必须与昇腾驱动版本对应(官网有 “版本配套表”),比如驱动装了 6.0,Toolkit 装 7.0 会直接报错; 权限不足坑:安装 Toolkit 和运行代码时,用sudo -i切换 root 用户,避免普通用户无权限访问设备; Python 版本坑:CANN 7.0 只支持 Python 3.7-3.9,用 Python 3.10 会提示 “no module named ascendcl”;
四、下一步学习方向
搞定基础部署后,可继续探索:
- 用 CANN 适配 PyTorch 模型(通过
torch_ascend插件); - 自定义算子(用 Ascend C 开发框架);
- 性能优化(用 Profiling 工具分析算子耗时)。
- 环境变量遗忘坑:每次打开新终端,都要执行
source ~/.bashrc,否则环境变量不生效(可将该命令添加到~/.profile实现开机自动生效)。
- 环境变量遗忘坑:每次打开新终端,都要执行
欢迎加入CANN社区:https://atomgit.com/cann
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)