飞桨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.
目录
相关文章
|
11月前
|
负载均衡 Docker Python
vLLM-Ascend 安装部署与环境配置指南
vLLM-Ascend 是 vLLM 项目专为华为昇腾 NPU 设计的硬件插件,支持主流大模型与多模态架构,提供高性能推理能力。项目结构清晰,涵盖核心算子、工具脚本与容器化部署方案,兼容单/多节点环境,助力高效构建昇腾上的 AI 推理服务。
4878 1
|
人工智能 监控 算法
人群计数、行人检测数据集(9000张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含9000张已标注、已划分的行人图像,适用于人群计数与目标检测任务。支持YOLO等主流框架,涵盖街道、商场等多种场景,标注精准,结构清晰,助力AI开发者快速训练高精度模型,应用于智慧安防、人流统计等场景。
人群计数、行人检测数据集(9000张图片已划分、已标注) | AI训练适用于目标检测任务
|
机器学习/深度学习 PyTorch 算法框架/工具
飞桨x昇腾生态适配方案:00_整体方案介绍
本文详细介绍PaddlePaddle与NPU的适配工作,涵盖训练与推理支持、性能优化及离线推理方案。PaddleCustomDevice作为适配层,支持主流模型(详见飞桨-昇腾模型列表),多数性能媲美V100,部分调优模型接近0.8*A800。硬件适配主要针对A2芯片,A1兼容但310系列建议离线推理。提供常用模型仓链接及整体方案导览,包括环境准备、算子适配、性能调优和Paddle转ONNX/OM等内容。
1149 0
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以上)。
5501 17
|
机器学习/深度学习 监控 算法
基于YOLOv8的智能鼠类目标检测系统 | 室内外老鼠自动识别与追踪【含完整训练源码+部署教程】
在城市环境、食品工厂、仓储物流以及实验室等场景中,老鼠(鼠类)检测需求逐渐增加。传统的红外检测或人工排查手段存在成本高、误报多、实时性差的问题。本项目结合深度学习中的YOLOv8目标检测算法,训练了专门用于识别“老鼠”目标的模型,可快速部署至视频监控系统、摄像头终端、图像分析平台等环境中,真正实现实时、高效、准确的鼠类识别,为智能化鼠害防控系统提供核心技术支撑。
基于YOLOv8的智能鼠类目标检测系统 | 室内外老鼠自动识别与追踪【含完整训练源码+部署教程】
|
机器学习/深度学习 存储 移动开发
Chunked-Prefills 分块预填充机制详解
为解决传统静态或迭代调度中存在的资源浪费与延迟问题,Sarathi-Serve 提出了 chunked-prefills 和 stall-free scheduling 机制,通过将长 prompt 拆分为多个小块,并与 decode 请求混合调度,从而实现高吞吐与低延迟的平衡。
3925 2
Chunked-Prefills 分块预填充机制详解
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch 中的动态图与静态图:理解它们的区别及其应用场景
【8月更文第29天】深度学习框架中的计算图是构建和训练神经网络的基础。PyTorch 支持两种类型的计算图:动态图和静态图。本文旨在阐述这两种计算图的区别、各自的优缺点以及它们在不同场景下的应用。
4447 0
|
API Python
飞桨x昇腾生态适配方案:13_API离线推理
ais_bench 提供了基于昇腾硬件的 Python API,用于离线模型(.om模型)推理。支持静态与动态API场景,如单个或多个OM模型推理。通过 `InferSession` 类加载模型并执行推理,可灵活处理输入输出形状转换。示例代码涵盖图片读取、形状调整、多模型串联推理及资源释放等操作,满足多样化推理需求。
1134 26
|
JSON 数据格式 AI芯片
飞桨x昇腾生态适配方案:14_loop算子缺失(上):ONNX模型拆分
本文针对NPU不支持LOOP算子的问题,提出一种解决方案:将ONNX模型拆分为含LOOP算子和不含LOOP算子的子图,单独推理LOOP部分。通过构造包含LOOP算子的ONNX模型,将其转换为JSON格式提取子图,并对子图进行修改(如添加输入节点、删除无关节点)。最后,将JSON转回ONNX格式,完成模型切分与优化。此方法适用于关键路径上的LOOP算子,可有效解决离线推理中的兼容性问题。
1056 26
|
存储 算法
飞桨x昇腾生态适配方案:09_Paddle转ONNX
本节主要介绍如何将 PP-OCRv4 模型转化为 ONNX 模型,包括环境准备、模型下载、训练模型转 inference 模型及最终转为 ONNX 格式的过程。首先需安装 Paddle2ONNX 和 ONNXRuntime,接着下载并解压训练模型。通过 `export_model.py` 脚本将训练模型转化为 inference 模型,生成包含结构和参数的文件。最后使用 Paddle2ONNX 工具完成到 ONNX 格式的转换,并可选地使用 onnxslim 进行模型优化。各步骤均提供详细命令与参数说明,便于实际操作与部署。
1543 9