写点什么

飞桨 x 昇腾生态适配方案:01_ 基础环境准备

作者:小顺637
  • 2025-05-12
    北京
  • 本文字数:2536 字

    阅读完需:约 8 分钟

CANN 环境准备

CANN 镜像下载

优先下载 cann8.0 镜像:


CANN 镜像加载

  • 镜像下载完成后,使用 docker load 命令将下载好的镜像导入到昇腾主机上:


docker load -i paddle-npu_cann80RC1-ubuntu20-aarch64-gcc84-py39.tar
复制代码


  • 导入成功后,使用 docker images 查看镜像名称与标签:


registry.baidubce.com/device/paddle-npu      cann80RC1-ubuntu20-aarch64-gcc84-py39
复制代码

CANN 镜像启动

启动 docker 镜像的命令如下,用户可根据实际环境修改:


sudo docker run -it --name paddle_test   \-v /home/:/home/  \-v `pwd`:/workspace  \-w /workspace  \--privileged --network=host --shm-size=128G  \-v /ssd1/dataset:/workspace/dataset  \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver  \-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi  \-v /usr/local/dcmi:/usr/local/dcmi  \-e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"  \registry.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-aarch64-gcc84-py39 /bin/bash
复制代码

Paddle 深度学习框架安装

PaddlePaddle 可选择源码编译或者直接下载日构建包安装,因为极少涉及到更改源码的情况,建议直接下载最新的日构建包。


# 下载链接https://www.paddlepaddle.org.cn/packages/nightly/cpu/paddlepaddle/# 安装命令pip install xxxxx.whl# 查看paddle的版本python3 -c "import paddle; print(paddle.__version__)"
复制代码

PaddleCustomDeviece 安装

适配层代码同样可以通过源码编译或者下载日构建包安装,但因为需要经常修改代码,建议选择源码编译安装。

日构建包安装

# 下载链接https://www.paddlepaddle.org.cn/packages/nightly/npu/paddle-custom-npu/# 安装命令pip install xxxxx.whl
复制代码

源码编译安装

# 下载PaddleCustomDevice源码git clone https://github.com/PaddlePaddle/PaddleCustomDevice# 进入硬件后端(昇腾NPU)目录cd PaddleCustomDevice/backends/npu# 执行编译脚本bash tools/compile.sh# 飞浆NPU插件在build/dist路径下,使用pip安装即可pip install build/dist/paddle_custom_npu*.whl  --force-reinstall
复制代码

更新 CANN 版本(可选)

CANN 包更新流程

当前 Docker 镜像中预装了 CANN8.0.RC1,如果需要安装其它版本的 CANN 包,可参考以下步骤在自定义路径下安装:

下载新 cann 包

下载目标版本的 cann 包,包括 toolkit 和 kernels。下载链接:https://www.hiascend.com/developer/download/community/result?module=cann&cann=8.0.0.alpha003

删除 info 文件

删除 ascend_cann_install.info 文件,否则无法指定安装目录。


rm -f /etc/Ascend/ascend_cann_install.info
复制代码

添加安装包执行权限

给 toolkit 和 kernel 软件包添加执行权限,若有权限则忽略。


chmod +x Ascend-cann-toolkit_xxx_linux-aarch64.runchmod +x Ascend-cann-kernels_xxx_linux-aarch64.run
复制代码

设置安装目录权限

为即将安装 CANN 包的目录及其上层目录赋 755 权限,否则安装失败。


chmod 755 /home/paddle_test/Ascend/
复制代码

安装新 CANN 包

注意:"--install-path"参数为 CANN 包安装路径,必须填绝对路径;可使用默认路径:"/usr/local/Ascend/",也可以自定义安装路径,建议使用自定义路径


# 先安装toolkit./Ascend-cann-toolkit_8.0.RC3_linux-aarch64.run --full --install-path=/home/paddle_test/Ascend/
# 再安装kernel./Ascend-cann-kernels-910b_8.0.RC3_linux-aarch64.run --install --install-path=/home/paddle_test/Ascend/
复制代码

设置环境变量

默认安装路径场景

如果更新的 CANN 包安装在默认路径,需要重新导入如下环境变量:


source /usr/local/Ascend/ascend-toolkit/set_env.sh
复制代码

自定义安装路径场景

如果更新的 CANN 包未安装在默认路径(本文中自定义安装路径为/home/paddle_test/Ascend),则需要导入如下环境变量:


source 自定义安装路径/ascend-toolkit/set_env.sh
# 由于更新CANN包(安装在自定义目录),安装路径发生改变,PaddlePaddle在编译时需要用ASCEND_CUSTOM_PATH这个环境变量来识别CANN包的安装路径export ASCEND_CUSTOM_PATH=自定义安装路径
复制代码


注意:


# 如果重新source不同版本CANN包请重新执行上一节中编译操作:cd PaddleCustomDevice/backends/npubash tools/compile.sh# 编译成功后重新安装:pip install build/dist/paddle_custom_npu*.whl --force-reinstall
复制代码

常见问题

自定义安装路径失败

  • 报错信息:


  • 解决方法:参考 CANN 包更新流程删除 ascend_cann_install.info 文件。

安装目录权限不足

  • 报错信息:


  • 上图中提供了日志文件路径:/var/log/ascend_seclog/ascend_toolkit_install.log,可查看详细日志信息。

  • 查看日志:


  • 解决方法:参考 CANN 包更新流程为安装目录设置 755 权限。

更新 CANN 后 PaddlePaddle 编译失败一

  • 报错信息:


  • 解决方法:export ASCEND_CUSTOM_PATH 时"自定义安装路径"后不能带"/",重新设置为:export ASCEND_CUSTOM_PATH=/home/paddle_test/Ascend

更新 CANN 后 PaddlePaddle 编译失败二

  • 报错信息:


  • 解决方法:把 CANN 包默认安装路径下的 atb、driver 链接到新 CANN 包安装的自定义路径。


ln -s /usr/local/Ascend/atb /真实路径/ln -s /usr/local/Ascend/driver /真实路径/
复制代码

基础功能检查

可用硬件后端检查

  • 输入检查指令:


python -c "import paddle; print(paddle.device.get_all_custom_device_type())"
复制代码


  • 预期得到如下输出结果:


['npu']
复制代码

当前安装版本检查

  • 输入检查指令:


python -c "import paddle_custom_device;paddle_custom_device.npu.version()"
复制代码


  • 预期得到如下输出结果:


version: 0.0.0commit: 9bfc65a7f11072699d0c5af160cf7597720531eacann: 8.0.RC1
复制代码

飞桨框架健康检查

  • 输入检查指令:


python -c "import paddle; paddle.utils.run_check()"
复制代码


  • 预期得到如下输出结果:


Running verify PaddlePaddle program ...PaddlePaddle works well on 1 npu.PaddlePaddle works well on 8 npus.PaddlePaddle is installed successfully!Let's start deep learning with PaddlePaddle now.
复制代码


用户头像

小顺637

关注

还未添加个人签名 2023-01-19 加入

还未添加个人简介

评论

发布
暂无评论
飞桨x昇腾生态适配方案:01_基础环境准备_飞桨_小顺637_InfoQ写作社区