训练营简介
2025年昇腾CANN训练营第二季,基于CANN开源开放全场景,推出0基础入门系列、码力全开特辑、开发者案例等专题课程,助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证,即可领取精美证书,完成社区任务更有机会赢取华为手机、平板、开发板等大奖。
环境准备:打好基础是关键
在开始安装CANN之前,充分的准备工作能避免后续很多不必要的问题。根据官方文档要求,我需要确保系统具备Python环境及pip3,当前CANN支持的Python版本为3.7.x至3.11.4。
我使用的是Ubuntu 20.04 LTS,首先检查Python版本:
python3 --version
pip3 --version
当我第一次尝试安装时,遇到了"pip3: command not found"错误。通过查阅文档,发现这是因为环境变量未正确配置。解决方案是指定Python路径并配置环境变量:
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/python3.7.5/bin:$PATH
对于使用容器的同学,可能会遇到"Cannot fork"错误。这是因为/bin/sh链接到了dash,需要将其修改为bash:
ls -l /bin/sh
ln -sf bash /bin/sh # 如果回显为dash,执行此命令
安装CANN软件包:步步为营
配置昇腾源
首先需要配置昇腾源,否则无法安装:
sudo curl https://repo.oepkgs.net/ascend/cann/ascend.repo -o /etc/yum.repos.d/ascend.repo && yum makecache
安装Toolkit开发套件包
CANN Toolkit开发套件包在训练、推理和开发调试场景下都需要安装,主要用于训练和推理业务、模型转换、算子/应用/模型的开发和编译。
安装前请确保安装目录可用空间大于10G:
sudo yum install -y Ascend-cann-toolkit-8.2.RC1
安装完成后,配置环境变量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
注意:上述环境变量配置只在当前窗口生效,可以按需将命令写入~/.bashrc文件。
安装其他必要组件
根据你的使用场景,可能还需要安装:
- NNAE深度学习引擎包:主要用于训练和推理业务
- NNRT离线推理引擎包:在边缘推理场景下安装,仅支持离线推理
- Kernels算子包:包括单算子API执行动态库/静态库文件,以及kernel二进制文件
安装Kernels算子包前,需已安装配套版本的Toolkit并配置环境变量。
实战问题与解决方案
1. 安装过程中的依赖问题
第一次安装CANN软件包时,我遇到了依赖缺失的问题。特别是当系统中有多个Python版本时,很容易出现兼容性问题。
解决方案:使用虚拟环境隔离不同项目的依赖,或者明确指定Python版本路径。确保环境变量配置正确。
2. 环境变量配置混乱
在安装多个CANN组件后,环境变量配置容易变得混乱,导致版本冲突。
解决方案:在~/.bashrc中清晰注释每个环境变量的作用,并只保留当前使用的组件环境变量。可以使用以下命令检查环境变量:
echo $LD_LIBRARY_PATH
echo $PYTHONPATH
3. 模型转换问题
在使用ATC工具进行模型转换时,经常会遇到算子不支持或格式不匹配的问题。
解决方案:仔细检查模型输入输出格式,使用ATC工具的日志调试功能。对于不支持的算子,可以考虑使用自定义算子开发。
验证安装:运行第一个样例
安装完成后,最好的验证方法就是运行一个简单样例。我选择了目标检测的样例进行测试。
首先需要安装第三方依赖,包括OpenCV和Python-acllite:
# 安装opencv
sudo apt-get install python3-opencv
# 安装python-acllite依赖
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev
pip3 install av numpy Pillow
设置环境变量:
export CPU_ARCH=`arch`
export THIRDPART_PATH=${HOME}/Ascend/thirdpart/${CPU_ARCH}
export PYTHONPATH=${THIRDPART_PATH}/acllite:$PYTHONPATH
export INSTALL_DIR=${HOME}/Ascend/ascend-toolkit/latest
下载样例代码:
git clone https://gitee.com/ascend/samples.git
在运行样例时,我遇到了"acl调用出错"的问题,通过重新配置环境变量并确保所有依赖安装完整,最终解决了这个问题。
学习心得与下一步计划
通过这次CANN环境搭建实践,我深刻体会到:
-
文档是关键:昇腾社区提供了详细的安装指南,遇到问题时首先应该查阅官方文档。
-
环境隔离很重要:使用虚拟环境或容器技术可以避免依赖冲突。
-
循序渐进:先从简单的样例开始,逐步深入理解CANN的架构和使用方法。
-
社区资源丰富:昇腾社区提供了丰富的在线视频课程和代码样例,善于利用这些资源能加速学习进程。
在环境搭建过程中,最耗时的往往不是安装本身,而是解决环境依赖和兼容性问题。记录下每次遇到的问题和解决方案,形成自己的知识库,对长期发展极为有益。
下一步,我计划继续深入学习CANN的模型转换工具ATC和推理接口AscendCL,争取早日完成第一个完整的模型部署项目。同时,我也会关注CANN训练营的后续课程,系统提升算子开发技能。

被折叠的 条评论
为什么被折叠?



