飞桨x昇腾生态适配方案:00_整体方案介绍

简介: 本文详细介绍PaddlePaddle与NPU的适配工作,涵盖训练与推理支持、性能优化及离线推理方案。PaddleCustomDevice作为适配层,支持主流模型(详见飞桨-昇腾模型列表),多数性能媲美V100,部分调优模型接近0.8*A800。硬件适配主要针对A2芯片,A1兼容但310系列建议离线推理。提供常用模型仓链接及整体方案导览,包括环境准备、算子适配、性能调优和Paddle转ONNX/OM等内容。

前言

  • 本文重点介绍Paddle与NPU的适配工作,PaddlePaddle是一个深度学习框架,类似于pytorch;PaddleCustomDeviece是适配层代码,类似于pytorch adapter;模型侧代码根据领域分为PaddleNLP、PaddleMix、PaddleClas、PaddleOCR等。
  • 如果需要运行在线的训练或者推理,可以直接参考模型仓的README,并更改deviece为NPU即可。当前已经支持了大部分主流模型且在持续增加中,具体的模型列表可参照飞桨-昇腾模型支持列表,大部分模型的性能基本持平V100,少部分专项调优模型可以达到0.8*A800(主要是大模型,多模态)。
  • 如果在线推理性能较差且只需要推理的场景,统一建议使用离线场景,Paddle2ONNX工具转化为ONNX,并使用atc转换为OM,具体可参照Paddle转OM以及离线推理章节内容。

    硬件适配说明

  • 当前的适配工作主要针对A2芯片,以下所有内容如果没有特殊说明都只针对A2芯片;
  • A1芯片在大部分情况下没有问题,且使用方式与A2相同,如遇到类似项目可自行使用相同方式进行验证,遇到问题单点支撑;
  • 310系列芯片没有进行过适配,建议直接走离线推理路径。

    常用Paddle模型仓

  • NLP代码仓PaddleNLP:https://github.com/PaddlePaddle/PaddleNLP
  • 多模态代码仓PaddleMIX:https://github.com/PaddlePaddle/PaddleMIX
  • 小模型总体仓库PaddleX:https://github.com/PaddlePaddle/PaddleX
  • 其余仓库可查看Paddle主页面:https://github.com/PaddlePaddle

整体方案导览

目录
相关文章
|
5月前
|
API Python
飞桨x昇腾生态适配方案:13_API离线推理
ais_bench 提供了基于昇腾硬件的 Python API,用于离线模型(.om模型)推理。支持静态与动态API场景,如单个或多个OM模型推理。通过 `InferSession` 类加载模型并执行推理,可灵活处理输入输出形状转换。示例代码涵盖图片读取、形状调整、多模型串联推理及资源释放等操作,满足多样化推理需求。
301 26
|
5月前
|
人工智能 测试技术 API
飞桨x昇腾生态适配方案:11_静态OM推理
昇腾AI推理工具`ais_bench`基于ACL开发,支持命令行快速推理与性能测试(吞吐率、时延等),并提供相关API。用户需下载适配环境的`aclruntime`和`ais_bench`的whl包后通过pip安装。设置环境变量后,可通过多种场景使用工具:纯推理(默认输入全0数据)、调试模式(获取详细参数与耗时信息)、文件/文件夹输入(指定Numpy文件或目录)、以及多Device并行推理。例如,BERT模型需按顺序传入三个文件夹对应其输入参数。工具输出包括吞吐率、耗时等关键指标,助力高效模型性能评估。
253 0
|
5月前
|
存储 算法
飞桨x昇腾生态适配方案:09_Paddle转ONNX
本节主要介绍如何将 PP-OCRv4 模型转化为 ONNX 模型,包括环境准备、模型下载、训练模型转 inference 模型及最终转为 ONNX 格式的过程。首先需安装 Paddle2ONNX 和 ONNXRuntime,接着下载并解压训练模型。通过 `export_model.py` 脚本将训练模型转化为 inference 模型,生成包含结构和参数的文件。最后使用 Paddle2ONNX 工具完成到 ONNX 格式的转换,并可选地使用 onnxslim 进行模型优化。各步骤均提供详细命令与参数说明,便于实际操作与部署。
222 9
|
jenkins Java Shell
使用 Docker 安装 Jenkins 并实现项目自动化部署
Jenkins 是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。作为领先的开源自动化服务器,Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目。
35245 3
使用 Docker 安装 Jenkins 并实现项目自动化部署
|
5月前
|
机器学习/深度学习 Docker 容器
飞桨x昇腾生态适配方案:01_基础环境准备
本指南详细介绍在ARM环境中准备CANN环境、安装Paddle深度学习框架及PaddleCustomDevice的过程。首先下载并加载CANN镜像,启动Docker容器;接着通过日构建包或源码编译安装PaddlePaddle和PaddleCustomDevice;可选更新CANN版本时需注意环境变量配置与路径设置。最后提供基础功能检查方法,包括硬件后端、版本验证及框架健康检查,确保环境搭建成功。
293 0
|
5月前
|
编解码 人工智能 API
飞桨x昇腾生态适配方案:12_动态OM推理
本文介绍了基于Ascend AI平台的OM模型动态推理方法,包括动态BatchSize、动态分辨率、动态维度及动态Shape四种场景,支持固定模式与自动设置模式。通过`ais_bench`工具实现推理,提供示例命令及输出结果说明,并解决常见问题(如环境变量未设置、输入与模型不匹配等)。此外,还提供了API推理指南及参考链接,帮助用户深入了解ONNX离线推理流程、性能优化案例及工具使用方法。
241 0
|
4月前
|
SQL 中间件 Go
开箱即用的GO后台管理系统 Kratos Admin - 后端项目结构说明
Kratos Admin 是一个开箱即用的 Go 语言后台管理系统,采用 Kratos 框架构建,提供清晰的项目结构与模块化设计。目录包含 API 定义、服务代码、配置文件、数据库初始化脚本及部署工具,支持 Docker 部署与自动化构建,便于快速开发和维护企业级应用。
108 1
|
5月前
|
编解码 人工智能 JSON
飞桨x昇腾生态适配方案:10_ONNX转OM
本章节主要介绍如何将ONNX模型转化为昇腾AI处理器支持的OM模型,并进行离线推理。通过昇腾张量编译器(ATC),可实现静态OM、动态BatchSize、动态分辨率、动态维度及动态shape等多种模型转换。文中详细说明了ATC工具的使用方法、参数配置、命令格式以及常见问题解决方法,同时提供了具体示例和可视化工具辅助输入参数确认,帮助用户高效完成模型转换与部署。
597 0
|
4月前
|
atlas AI芯片 Python
昇腾NPU上基于MindIE服务的AIME和MATH500测评方案
本文介绍了基于MindIE服务和lighteval工具对DeepSeek-R1类模型进行能力测评的方法。针对AIME 2024、AIME 2025、MATH-500和GPQA等数据集,通过在Atlas 800I A2硬件上部署MindIE服务,结合开源项目Open R1的评测方法完成测评。主要内容包括模型权重下载、MindIE服务化部署、lighteval安装与配置,以及使用openai模式进行测评的具体步骤。最终展示了AIME 2024和MATH-500的测评结果,并对比了DeepSeek官方数据。该方案适合需要准确评估带推理思维链模型性能的场景。
398 0
|
5月前
|
存储 文字识别 文件存储
飞桨x昇腾生态适配方案:03_模型训练迁移
本案例以PaddleOCRv4模型为例,详细介绍了将模型迁移到NPU的完整流程。迁移过程中需确保模型功能在新硬件上无误,重点关注偶发性错误及长时间运行时可能出现的问题,并通过日志辅助定位问题。文档涵盖环境搭建、数据集准备、模型配置、训练启动及常见问题排查等内容。例如,通过设置环境变量排查缺失算子,处理Paddle版本兼容性问题,以及解决进程残留等。适合希望将OCR模型部署到NPU的开发者参考。
174 0