CANN训练营环境搭建实战:Ubuntu系统安装全记录

训练营简介

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环境搭建实践,我深刻体会到:

  1. 文档是关键:昇腾社区提供了详细的安装指南,遇到问题时首先应该查阅官方文档。

  2. 环境隔离很重要:使用虚拟环境或容器技术可以避免依赖冲突。

  3. 循序渐进:先从简单的样例开始,逐步深入理解CANN的架构和使用方法。

  4. 社区资源丰富:昇腾社区提供了丰富的在线视频课程和代码样例,善于利用这些资源能加速学习进程。

在环境搭建过程中,最耗时的往往不是安装本身,而是解决环境依赖和兼容性问题。记录下每次遇到的问题和解决方案,形成自己的知识库,对长期发展极为有益。

下一步,我计划继续深入学习CANN的模型转换工具ATC和推理接口AscendCL,争取早日完成第一个完整的模型部署项目。同时,我也会关注CANN训练营的后续课程,系统提升算子开发技能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿追

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值