CANN环境搭建与配置指南
CANN环境搭建是开发昇腾AI应用的第一步,正确的环境配置可以避免很多后续问题。本文详细介绍了从驱动安装到CANN工具链配置的完整流程,以及常见问题的排查方法。搭建好环境后,开发者可以使用MindStudio进行高效的AI应用开发,充分发挥昇腾AI处理器的性能优势。
CANN环境搭建与配置指南
CANN组织链接:https://atomgit.com/cann
CANN community仓库链接:https://atomgit.com/cann/community
一、环境准备
1.1 硬件要求
CANN运行需要特定的硬件环境支持,主要包括:
1.1.1 昇腾AI处理器
CANN软件栈需要昇腾系列AI处理器支持,主要包括:
- Ascend 910:训练芯片,用于大规模模型训练
- Ascend 310:推理芯片,用于边缘侧推理部署
- Ascend 310P:推理芯片升级版,性能更强
- Ascend 910B:训练芯片升级版,支持更先进特性
1.1.2 服务器要求
- CPU:支持AVX2指令集的x86_64处理器
- 内存:建议16GB以上
- 存储:建议100GB以上可用空间
- 网络:稳定的网络连接用于下载安装包
1.2 软件要求
1.2.1 操作系统
CANN支持多种Linux操作系统:
- Ubuntu 18.04/20.04/22.04
- CentOS 7.6/7.8/7.9
- Kylin V10
- openEuler 20.03/22.03/22.03 LTS SP3
1.2.2 依赖软件
# Python环境
Python 3.7.5 - 3.9.0
# 必要的系统库
gcc 7.3.0+
g++ 7.3.0+
cmake 3.14.0+
make 3.82+
zlib 1.2.7+
二、驱动安装
2.1 安装NPU驱动
NPU驱动是CANN运行的基础,负责管理昇腾AI处理器硬件。
2.1.1 下载驱动
从昇腾社区官网下载对应版本的NPU驱动:
https://www.hiascend.com/hardware/firmware-drivers
选择与硬件型号和操作系统匹配的驱动版本。
2.1.2 安装驱动
# 解压驱动安装包
tar -zxvf Ascend-hdk-xxx-linux-npu-driver_x.x.x.x_linux.run.tar.gz
# 运行安装脚本
bash Ascend-hdk-xxx-linux-npu-driver_x.x.x.x_linux.run --full
# 验证安装
npu-smi info
2.1.3 配置驱动
驱动安装完成后,需要配置相关参数:
# 编辑驱动配置文件
vi /etc/ascend/config.info
# 设置设备可见性(可选)
export ASCEND_VISIBLE_DEVICES=0,1
2.2 安装固件
固件是运行在昇腾AI处理器上的嵌入式软件。
# 解压固件安装包
tar -zxvf Ascend-hdk-xxx-npu-firmware_x.x.x.x.run.tar.gz
# 安装固件
bash Ascend-hdk-xxx-npu-firmware_x.x.x.x.run --full
# 重启使固件生效
reboot
三、CANN安装
3.1 下载CANN软件包
从昇腾社区官网下载CANN软件包:
https://www.hiascend.com/software/cann
选择合适版本,主要包包括:
- CANN开发套件:包含开发工具和运行时
- CANN运行时:仅包含运行时环境
- 算子库:高性能算子实现
3.2 安装CANN开发套件
3.2.1 创建安装用户
# 创建用户组
groupadd HwHiAiUser
# 创建用户并加入组
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
# 设置密码
passwd HwHiAiUser
3.2.2 安装软件包
# 切换到安装用户
su - HwHiAiUser
# 解压安装包
tar -zxvf Ascend-cann-toolkit_x.x.x_linux-x64-xxx.run.tar.gz
# 安装
bash Ascend-cann-toolkit_x.x.x_linux-x64-xxx.run --install-path=/home/HwHiAiUser/Ascend/ascend-toolkit/latest
# 验证安装
source ~/.bashrc
cat /usr/local/Ascend/ascend-toolkit/latest/version.info
3.3 配置环境变量
在用户目录下配置环境变量:
# 编辑.bashrc文件
vi ~/.bashrc
# 添加以下内容
# CANN工具链环境变量
source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh
# Python路径
export PYTHONPATH=/home/HwHiAiUser/Ascend/ascend-toolkit/latest/python/site-packages/te:$PYTHONPATH
export PYTHONPATH=/home/HwHiAiUser/Ascend/ascend-toolkit/latest/python/site-packages/topi:$PYTHONPATH
export PYTHONPATH=/home/HwHiAiUser/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/op_tiling:$PYTHONPATH
# 使配置生效
source ~/.bashrc
四、开发环境配置
4.1 安装MindStudio
MindStudio是昇腾AI处理器的集成开发环境,提供完整的开发工具链。
4.1.1 下载MindStudio
https://www.hiascend.com/software/mindstudio
4.1.2 安装MindStudio
# 解压安装包
unzip MindStudio_5.0.RC3_linux.zip
# 运行安装脚本
cd MindStudio/bin
./MindStudio.sh
4.1.3 配置MindStudio
- 首次启动配置JDK路径
- 配置远程开发环境
- 配置CANN工具链路径
- 配置Python解释器
4.2 安装Python依赖
# 升级pip
python3 -m pip install --upgrade pip
# 安装必要依赖
pip3 install numpy
pip3 install decorator
pip3 install sympy
pip3 install cffi
pip3 install pyyaml
pip3 install pathlib2
pip3 install grpcio
pip3 install protobuf
pip3 install scipy
4.3 配置Docker环境(可选)
使用Docker可以快速搭建隔离的开发环境。
4.3.1 安装Docker
# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 启动Docker服务
systemctl start docker
systemctl enable docker
# 添加用户到docker组
usermod -aG docker HwHiAiUser
4.3.2 使用CANN Docker镜像
# 拉取镜像
docker pull ascend.huawei.com/public-ascendhub/ascend-mindspore:23.0.rc3-mindstudio-standard-centos7
# 运行容器
docker run -it \
--device=/dev/davinci0 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend:/usr/local/Ascend \
-v /var/log/npu/:/var/log/npu \
ascend.huawei.com/public-ascendhub/ascend-mindspore:23.0.rc3-mindstudio-standard-centos7 \
/bin/bash
五、验证安装
5.1 验证驱动和固件
# 查看NPU设备信息
npu-smi info
# 预期输出:
# +------------------------------------------------------------------------------------------------+
# | npu-smi 23.0.rc3 Version: 23.0.rc3 |
# +----------------------+---------------+-------------------------------------------------------+
# | NPU Name Health Power(mW) Temp(C) Hugepages-Usage(page) |
# +----------------------+---------------+-------------------------------------------------------+
# | 0 910A OK 32000 41 0 / 0 |
# +----------------------+---------------+-------------------------------------------------------+
5.2 验证CANN工具链
# 检查CANN版本
cat /usr/local/Ascend/ascend-toolkit/latest/version.info
# 检查环境变量
echo $ASCEND_HOME
echo $LD_LIBRARY_PATH
# 运行示例程序
cd /home/HwHiAiUser/Ascend/ascend-toolkit/latest/examples
5.3 运行简单测试
# test_cann.py
import numpy as np
from te import tik
from te平台 import cce
# 创建TIK实例
tik_instance = tik.Tik()
# 定义输入输出
data_a = tik_instance.Tensor("int32", (128,), name="data_a", scope=tik.scope_gm)
data_b = tik_instance.Tensor("int32", (128,), name="data_b", scope=tik.scope_gbm)
data_c = tik_instance.Tensor("int32", (128,), name="data_c", scope=tik.scope_gm)
# 向量加法
with tik_instance.for_range(0, 128) as i:
data_c[i].set_as(data_a[i] + data_b[i])
# 编译生成二进制文件
tik_instance.BuildCCE(kernel_name="vector_add", output_path="./")
print("CANN环境测试成功!")
六、常见问题排查
6.1 驱动安装失败
问题:驱动安装报错
解决方案:
# 检查内核版本
uname -r
# 确认内核版本与驱动兼容
# 查看详细日志
cat /var/log/ascend_seclog/alog/ Ascend-npu-*.log
6.2 环境变量未生效
问题:命令找不到
解决方案:
# 手动source环境变量
source /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh
# 检查环境变量
echo $ASCEND_HOME
6.3 设备不可用
问题:运行时提示设备不可用
解决方案:
# 检查设备状态
npu-smi info
# 检查设备权限
ls -l /dev/davinci*
ls -l /dev/devmm_svm
# 修改设备权限
chmod 666 /dev/davinci*
chmod 666 /dev/devmm_svm
七、性能调优
7.1 设置性能模式
# 设置性能模式为高性能模式
npu-smi set -t performance -i 0
# 查看当前性能模式
npu-smi set -t performance -i 0
7.2 配置内存池
# 编辑配置文件
vi /etc/ascend/config.info
# 设置内存池大小
memory_pool_size=8G
7.3 启用算子加速
# 设置环境变量
export USE_TRT_LEN=1
export TBE_IMPL_MODE=0
八、开发工具使用
8.1 msquickcmp工具
用于快速对比算子精度:
msquickcmp \
--input data.bin \
--golden golden_data.bin \
--output output.bin \
--shape "1,3,224,224" \
--dtype float32
8.2 msopctl工具
用于管理算子:
# 列出所有算子
msopctl list
# 查看算子信息
msopctl info -n conv2d
九、总结
CANN环境搭建是开发昇腾AI应用的第一步,正确的环境配置可以避免很多后续问题。本文详细介绍了从驱动安装到CANN工具链配置的完整流程,以及常见问题的排查方法。
搭建好环境后,开发者可以使用MindStudio进行高效的AI应用开发,充分发挥昇腾AI处理器的性能优势。
参考资料
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)