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

简介: 本指南详细介绍在ARM环境中准备CANN环境、安装Paddle深度学习框架及PaddleCustomDevice的过程。首先下载并加载CANN镜像,启动Docker容器;接着通过日构建包或源码编译安装PaddlePaddle和PaddleCustomDevice;可选更新CANN版本时需注意环境变量配置与路径设置。最后提供基础功能检查方法,包括硬件后端、版本验证及框架健康检查,确保环境搭建成功。

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.run
chmod +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/npu
bash tools/compile.sh
# 编译成功后重新安装:
pip install build/dist/paddle_custom_npu*.whl --force-reinstall

常见问题

自定义安装路径失败

  • 报错信息:
    01_自定义安装路径失败.png

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

    安装目录权限不足

  • 报错信息:
    02_安装目录权限不足.png

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

  • 查看日志:
    03_查看详细日志信息.png

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

    更新CANN后PaddlePaddle编译失败一

  • 报错信息:
    04_更新CANN后PaddlePaddle编译失败一.png

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

    更新CANN后PaddlePaddle编译失败二

  • 报错信息:
    05_更新CANN后PaddlePaddle编译失败二.png

  • 解决方法:
    把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.0
commit: 9bfc65a7f11072699d0c5af160cf7597720531ea
cann: 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.
目录
相关文章
|
2月前
|
负载均衡 Docker Python
vLLM-Ascend 安装部署与环境配置指南
vLLM-Ascend 是 vLLM 项目专为华为昇腾 NPU 设计的硬件插件,支持主流大模型与多模态架构,提供高性能推理能力。项目结构清晰,涵盖核心算子、工具脚本与容器化部署方案,兼容单/多节点环境,助力高效构建昇腾上的 AI 推理服务。
848 1
|
9月前
|
机器学习/深度学习 PyTorch 算法框架/工具
飞桨x昇腾生态适配方案:00_整体方案介绍
本文详细介绍PaddlePaddle与NPU的适配工作,涵盖训练与推理支持、性能优化及离线推理方案。PaddleCustomDevice作为适配层,支持主流模型(详见飞桨-昇腾模型列表),多数性能媲美V100,部分调优模型接近0.8*A800。硬件适配主要针对A2芯片,A1兼容但310系列建议离线推理。提供常用模型仓链接及整体方案导览,包括环境准备、算子适配、性能调优和Paddle转ONNX/OM等内容。
565 0
|
10月前
|
容器
vllm+vllm-ascend本地部署QwQ-32B
本指南介绍如何下载、安装和启动基于Ascend的vLLM模型。首先,可通过华为镜像或Hugging Face下载预训练模型;其次,安装vllm-ascend,支持通过基础镜像(如`quay.io/ascend/vllm-ascend:v0.7.3-dev`)或源码编译方式完成;最后,使用OpenAI兼容接口启动模型,例如运行`vllm serve`命令,设置模型路径、并行规模等参数。适用于大模型推理场景,需注意显存需求(如QwQ-32B需70G以上)。
4084 17
|
6月前
|
存储 人工智能 自然语言处理
大模型备案攻略—2025全网最新最详细解读版
随着AI技术的发展,大模型备案成为行业热点。本文详解备案所需具体条件与注意事项,涵盖模型功能、适用场景、研制情况、安全评估及备案材料等核心内容,帮助企业全面了解备案流程,规避合规风险,顺利推进产品上线。
|
9月前
|
API Python
飞桨x昇腾生态适配方案:13_API离线推理
ais_bench 提供了基于昇腾硬件的 Python API,用于离线模型(.om模型)推理。支持静态与动态API场景,如单个或多个OM模型推理。通过 `InferSession` 类加载模型并执行推理,可灵活处理输入输出形状转换。示例代码涵盖图片读取、形状调整、多模型串联推理及资源释放等操作,满足多样化推理需求。
668 26
|
9月前
|
API 调度 AI芯片
飞桨x昇腾生态适配方案:08_性能调优方法
本文主要探讨性能优化中的问题定界与解决方法,针对计算时间和调度时间两方面展开分析。对于计算时间长的问题,可能源于算子运行在 AI_CPU 或使用较慢的 aclop 算子,可通过数据类型转换、切换至 aclnn 算子或优化底层算子来改善。调度时间长则常因算子运行在 CPU、重复编译或通讯耗时过多引起,可采取算子适配优化、减少编译次数及避免冗余 copy 操作等手段解决。此外,文章还介绍了适配层优化策略,包括未注册算子排查、重复编译优化以及通过更换算子、调整数据类型和引入融合算子提升性能。
252 10
飞桨x昇腾生态适配方案:08_性能调优方法
|
9月前
|
存储 文字识别 文件存储
飞桨x昇腾生态适配方案:03_模型训练迁移
本案例以PaddleOCRv4模型为例,详细介绍了将模型迁移到NPU的完整流程。迁移过程中需确保模型功能在新硬件上无误,重点关注偶发性错误及长时间运行时可能出现的问题,并通过日志辅助定位问题。文档涵盖环境搭建、数据集准备、模型配置、训练启动及常见问题排查等内容。例如,通过设置环境变量排查缺失算子,处理Paddle版本兼容性问题,以及解决进程残留等。适合希望将OCR模型部署到NPU的开发者参考。
424 0
|
9月前
|
存储 算法
飞桨x昇腾生态适配方案:09_Paddle转ONNX
本节主要介绍如何将 PP-OCRv4 模型转化为 ONNX 模型,包括环境准备、模型下载、训练模型转 inference 模型及最终转为 ONNX 格式的过程。首先需安装 Paddle2ONNX 和 ONNXRuntime,接着下载并解压训练模型。通过 `export_model.py` 脚本将训练模型转化为 inference 模型,生成包含结构和参数的文件。最后使用 Paddle2ONNX 工具完成到 ONNX 格式的转换,并可选地使用 onnxslim 进行模型优化。各步骤均提供详细命令与参数说明,便于实际操作与部署。
498 9
|
9月前
|
数据采集 Web App开发 数据挖掘
飞桨x昇腾生态适配方案:07_性能数据分析
本文介绍了性能调优的全流程,包括分析、定位与优化。通过 profiling 工具采集算子级性能数据,定位计算与调度通信瓶颈。针对计算时间过长问题,可通过升级算子或提交工单解决;调度优化则关注重复编译,关闭在线编译或使用 aclnn 算子可提升效率。数据采集使用 paddlepaddle 的 profiler 工具,结合 msprof 解析生成的性能数据,重点分析 op_statistic_*.csv 和 op_summary_*.csv 文件,通过关键字段(如 Ratio、Total Time、Task Duration 和 Task Wait Time)量化性能瓶颈并实施优化策略。
366 10
|
9月前
|
文字识别 算法 API
飞桨x昇腾生态适配方案:04_模型精度对齐
本文详细介绍了模型在不同硬件(如GPU与NPU)间迁移时的精度对齐方法,包括前向和反向对齐的具体步骤。前向对齐通过模块化对比计算结果(如平均值、最大最小值等),确保误差在合理范围内;反向对齐则聚焦于梯度差异,利用二分法定位问题算子。同时,文章结合PPHGNet_small和MultiHead等具体模块代码,说明了如何打印输出并分析中间结果。此外,还探讨了私有格式、梯度异常及特殊shape等可能影响精度的因素,并提出相应解决策略。整体流程清晰,为跨硬件模型迁移提供了实用指导。
470 10

热门文章

最新文章