From 3b04cc6244a7b0dce2c3e79af818873ed9a2bf00 Mon Sep 17 00:00:00 2001 From: zhupengyang Date: Tue, 4 Jan 2022 13:14:13 +0800 Subject: [PATCH] fix xpu docs/shell (#8091) --- README.md | 4 +- .../{baidu_xpu.md => kunlunxin_xpu.md} | 63 +++++++++++---- docs/develop_guides/add_hardware.md | 8 +- docs/guide/introduction.md | 2 +- docs/index.rst | 2 +- docs/quick_start/release_lib.md | 2 +- docs/quick_start/support_hardware.md | 12 +-- docs/quick_start/support_model_list.md | 30 +++---- docs/quick_start/support_operation_list.md | 4 +- docs/quick_start/tutorial.md | 2 +- .../arm_linux_compile_arm_linux.rst | 4 +- docs/source_compile/compile_options.md | 3 +- .../multi_device_support/baidu_xpu.rst | 37 --------- .../multi_device_support/kunlunxin_xpu.rst | 33 ++++++++ .../linux_x86_compile_arm_linux.rst | 4 +- .../linux_x86_compile_linux_x86.rst | 4 +- .../windows_compile_windows.rst | 10 +-- docs/user_guides/model_visualization.md | 2 +- lite/tools/build_linux.sh | 79 ++++++++++++------- lite/tools/build_windows.bat | 32 ++++---- 20 files changed, 191 insertions(+), 146 deletions(-) rename docs/demo_guides/{baidu_xpu.md => kunlunxin_xpu.md} (77%) delete mode 100644 docs/source_compile/include/multi_device_support/baidu_xpu.rst create mode 100644 docs/source_compile/include/multi_device_support/kunlunxin_xpu.rst diff --git a/README.md b/README.md index a6a235d9ec1..9974a93aa11 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Paddle Lite 提供了 C++、Java、Python 三种 API,并且提供了相应 API - [百度 EdgeBoard FPGA 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/fpga.html) - [华为麒麟 NPU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/huawei_kirin_npu.html) - [华为昇腾 NPU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/huawei_ascend_npu.html) -- [百度昆仑 XPU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/baidu_xpu.html) +- [昆仑芯 XPU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/kunlunxin_xpu.html) - [瑞芯微 NPU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/rockchip_npu.html) - [联发科 APU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/mediatek_apu.html) - [比特大陆 NPU 示例](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/bitmain.html) @@ -76,7 +76,7 @@ Paddle Lite 提供了 C++、Java、Python 三种 API,并且提供了相应 API | 百度 EdgeBoard FPGA | - | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | - | | 华为麒麟 NPU | - | - | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | | 华为昇腾 NPU | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | - | -| 百度昆仑 XPU | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | - | +| 昆仑芯 XPU | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | - | | 瑞芯微 NPU | - | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | - | | 联发科 APU | - | - | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | | 比特大陆 NPU | - | ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) | - | - | diff --git a/docs/demo_guides/baidu_xpu.md b/docs/demo_guides/kunlunxin_xpu.md similarity index 77% rename from docs/demo_guides/baidu_xpu.md rename to docs/demo_guides/kunlunxin_xpu.md index a95dfc6659d..a632d8d2471 100644 --- a/docs/demo_guides/baidu_xpu.md +++ b/docs/demo_guides/kunlunxin_xpu.md @@ -1,7 +1,7 @@ -# 百度昆仑 XPU 部署示例 +# 昆仑芯 XPU 部署示例 -Paddle Lite 已支持百度 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000+/64)上进行预测部署。 -目前支持 Kernel 和子图两种接入方式,其中子图接入方式与之前华为 Kirin NPU 类似,即加载并分析 Paddle 模型,将 Paddle 算子转成 XTCL 组网 API 进行网络构建,在线生成并执行模型。 +Paddle Lite 已支持昆仑芯 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000+/64)上进行预测部署。 +目前支持 Kernel 和子图两种接入方式。其中子图接入方式原理是,在线分析 Paddle 模型,将 Paddle 算子先转为统一的 NNAdapter 标准算子,再通过 XTCL 组网 API 进行网络构建,在线生成并执行模型。 ## 支持现状 @@ -28,7 +28,7 @@ Paddle Lite 已支持百度 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000 ### 测试设备( K100 昆仑 AI 加速卡) -![baidu_xpu](https://paddlelite-demo.bj.bcebos.com/devices/baidu/baidu_xpu.jpg) +![kunlunxin_xpu](https://paddlelite-demo.bj.bcebos.com/devices/baidu/baidu_xpu.jpg) ### 准备设备环境 @@ -137,7 +137,7 @@ Paddle Lite 已支持百度 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000 - 通过 Paddle 训练,或 X2Paddle 转换得到 ResNet50 float32 模型[ resnet50_fp32_224_fluid ](https://paddlelite-demo.bj.bcebos.com/models/resnet50_fp32_224_fluid.tar.gz); - 由于 XPU 一般部署在 Server 端,因此将使用 Paddle Lite 的 `full api` 加载原始的 Paddle 模型进行预测,即采用 `CxxConfig` 配置相关参数。 -### 更新支持百度 XPU 的 Paddle Lite 库 +### 更新支持昆仑芯 XPU 的 Paddle Lite 库 - 下载 Paddle Lite 源码; @@ -151,12 +151,12 @@ Paddle Lite 已支持百度 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000 ```shell $ # For amd64,如果报找不到 cxx11:: 符号的编译错误,请将 gcc 切换到 4.8 版本。 - $ ./lite/tools/build_linux.sh --arch=x86 --with_baidu_xpu=ON + $ ./lite/tools/build_linux.sh --arch=x86 --with_kunlunxin_xpu=ON $ # For arm64(FT-2000+/64), arm 环境下需要设置环境变量 CC 和 CXX,分别指定 C 编译器和 C++ 编译器的路径 $ export CC= $ export CXX= - $ ./lite/tools/build_linux.sh --arch=armv8 --with_baidu_xpu=ON + $ ./lite/tools/build_linux.sh --arch=armv8 --with_kunlunxin_xpu=ON ``` - 替换库文件和头文件 @@ -164,26 +164,59 @@ Paddle Lite 已支持百度 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000 ```shell cd PaddleLite-linux-demo/image_classification_demo/shell ./update_libs.sh - # For amd64,lite_inference_dir 一般为编译生成的 build.lite.linux.x86.gcc.baidu_xpu/inference_lite_lib,demo_libs_dir 为 PaddleLite-linux-demo/libs/PaddleLite/amd64 - # For arm64,lite_inference_dir一般为编译生成的 build.lite.linux.armv8.gcc.baidu_xpu/inference_lite_lib.armlinux.armv8.xpu,demo_libs_dir 为 PaddleLite-linux-demo/libs/PaddleLite/amd64 + # For amd64,lite_inference_dir 一般为编译生成的 build.lite.linux.x86.gcc.kunlunxin_xpu/inference_lite_lib,demo_libs_dir 为 PaddleLite-linux-demo/libs/PaddleLite/amd64 + # For arm64,lite_inference_dir一般为编译生成的 build.lite.linux.armv8.gcc.kunlunxin_xpu/inference_lite_lib.armlinux.armv8.xpu,demo_libs_dir 为 PaddleLite-linux-demo/libs/PaddleLite/amd64 ``` 备注:替换头文件后需要重新编译示例程序 -- windows 版本的编译适配 +## 子图方式接入 - 1) Paddle Lite 使用 XPU kernel 的方案 +### 运行图像分类示例程序 + +### 更新模型 + +### 更新支持昆仑芯 XPU XTCL 方式的 Paddle Lite 库 + +- 下载 Paddle Lite 源码; ```shell + $ git clone https://github.com/PaddlePaddle/Paddle-Lite.git $ cd Paddle-Lite - $ lite\\tools\\build_windows.bat with_extra without_python use_vs2017 with_dynamic_crt with_baidu_xpu baidu_xpu_sdk_root D:\\xpu_toolchain_windows\\output + $ git checkout + ``` + +- 编译 publish so for amd64 or arm64(FT-2000+/64); + + ```shell + $ # For amd64 + $ ./lite/tools/build_linux.sh \ + $ --arch=x86 \ + $ --with_nnadapter=ON \ + $ --nnadapter_with_kunlunxin_xtcl=ON \ + $ --nnadapter_kunlunxin_xtcl_sdk_root= + + $ # For arm64(FT-2000+/64), arm 环境下需要设置环境变量 CC 和 CXX,分别指定 C 编译器和 C++ 编译器的路径 + $ export CC= + $ export CXX= + $ ./lite/tools/build_linux.sh \ + $ --arch=armv8 \ + $ --with_nnadapter=ON \ + $ --nnadapter_with_kunlunxin_xtcl=ON \ + $ --nnadapter_kunlunxin_xtcl_sdk_root= ``` - 2) Paddle Lite 使用 XPU XTCL 子图方案 +- 替换库文件和头文件 + + 备注:替换头文件后需要重新编译示例程序 + +## windows 版本的编译适配 + + 1) Paddle Lite 使用 XPU kernel 的方案 ```shell $ cd Paddle-Lite - $ lite\\tools\\build_windows.bat with_extra without_python use_vs2017 with_dynamic_crt with_baidu_xpu with_baidu_xpu_xtcl baidu_xpu_sdk_root D:\\xpu_toolchain_windows\\output + $ lite\\tools\\build_windows.bat with_extra without_python use_vs2017 with_dynamic_crt with_kunlunxin_xpu kunlunxin_xpu_sdk_root D:\\xpu_toolchain_windows\\output ``` 编译脚本 `build_windows.bat` 使用可参考[源码编译( Windows )](../source_compile/windows_compile_windows)进行环境配置和查找相应编译参数 @@ -191,4 +224,4 @@ Paddle Lite 已支持百度 XPU 在 X86 和 ARM 服务器(例如飞腾 FT-2000 ## 其它说明 - 如需更进一步的了解相关产品的信息,请联系欧阳剑 ouyangjian@baidu.com; -- 百度昆仑的研发同学正在持续适配更多的 Paddle 算子,以便支持更多的 Paddle 模型。 +- 昆仑芯的研发同学正在持续适配更多的 Paddle 算子,以便支持更多的 Paddle 模型。 diff --git a/docs/develop_guides/add_hardware.md b/docs/develop_guides/add_hardware.md index 427a3b52956..5cdb7a5056d 100644 --- a/docs/develop_guides/add_hardware.md +++ b/docs/develop_guides/add_hardware.md @@ -1,12 +1,12 @@ # 新增硬件 ## 背景 -- 深度学习技术在安防、交通、医疗、工业制造等行业获得了较广泛的应用,为了满足实际需求,越来越多算力更高、功耗更低的专用硬件被研发出来投向市场,涌现了诸如华为昇腾/麒麟 SoC 的达芬奇架构 NPU 、瑞芯微 RK/RV 系列 SoC 的 NPU 、寒武纪 MLU 、谷歌 TPU 和百度 XPU 等不同形态的硬件,以明显优于传统 CPU 、 GPU 的性能和功耗的特点,逐步获得市场的认可,被广泛用于服务器端、边缘端和移动端。 +- 深度学习技术在安防、交通、医疗、工业制造等行业获得了较广泛的应用,为了满足实际需求,越来越多算力更高、功耗更低的专用硬件被研发出来投向市场,涌现了诸如华为昇腾/麒麟 SoC 的达芬奇架构 NPU 、瑞芯微 RK/RV 系列 SoC 的 NPU 、寒武纪 MLU 、谷歌 TPU 和昆仑芯 XPU 等不同形态的硬件,以明显优于传统 CPU 、 GPU 的性能和功耗的特点,逐步获得市场的认可,被广泛用于服务器端、边缘端和移动端。 ## 意义 - 良好的软件生态是硬件获得成功的关键,硬件驱动的兼容性、成熟的编译工具链、完善的 SDK 、 API 和文档、更多第三方深度学习框架的支持,都是影响硬件能否积攒用户、建立完善的软件生态的重要因素。特别的,在实际的项目部署过程中,推理引擎对硬件的支持尤为关键,它能屏蔽底层硬件细节,提供统一的接口,实现同一个模型在多种硬件间无缝迁移和异构计算,帮助应用提供方降低迁移成本并获得更高的性能; - Paddle Lite 是一款支持服务器端、边缘端和移动端场景的推理引擎,在设计之初就考虑了如何友好的支持不同形态的硬件(例如 CPU 、 GPU 、 DSP 、 FPGA 和 ASIC 等),主要表现在推理框架与硬件解耦合,提出了统一的图优化 Pass 层、算子层和 Kernel 层接口,在实现灵活配置多硬件间异构执行的同时,最大限度地减少适配过程中对框架的修改,真正做到硬件细节对用户透明; -- Paddle Lite 支持的硬件目前已多达十余种,这其中不乏像华为 NPU 、瑞芯微 NPU 、联发科 APU 、颖脉( Imagination ) NNA、百度 XPU 和寒武纪 MLU 等一线芯片(或 IP )厂商研发的 ASIC 芯片,我们也希望更多的硬件(或 IP )厂商与我们合作,共建 Paddle Lite 和 PaddlePaddle 的硬件生态。 +- Paddle Lite 支持的硬件目前已多达十余种,这其中不乏像华为 NPU 、瑞芯微 NPU 、联发科 APU 、颖脉( Imagination ) NNA、昆仑芯 XPU 和寒武纪 MLU 等一线芯片(或 IP )厂商研发的 ASIC 芯片,我们也希望更多的硬件(或 IP )厂商与我们合作,共建 Paddle Lite 和 PaddlePaddle 的硬件生态。 - 在阐述硬件接入的具体步骤前,我们将简单介绍下 Paddle Lite 的工作原理,即从读入模型文件到硬件执行过程中都经历了哪些步骤? ## Paddle Lite 是如何工作的? @@ -59,7 +59,7 @@ 优点是灵活,但缺点也显而易见,性能的好坏取决于负责接入框架的研发同学的能力和经验,更依赖对硬件的熟悉程度; - **中间表示层( Intermediate Representation , IR )接口( High Level )** - - 组网 IR 和运行时 API :例如 NVIDIA 的 TensorRT 、 Intel 的 nGraph 、华为 HiAI IR 和百度昆仑的 XTCL 接口。 + - 组网 IR 和运行时 API :例如 NVIDIA 的 TensorRT 、 Intel 的 nGraph 、华为 HiAI IR 和昆仑芯的 XTCL 接口。 优点是屏蔽硬件细节,模型的优化、生成和执行由运行时库完成,对负责接入框架的研发同学要求较低,性能取决于硬件厂商(或 IP 提供商)的研发能力,相对可控; @@ -256,7 +256,7 @@ To https://github.com/UserName/Paddle-Lite.git * [new branch] hongming/print_ssa_graph -> hongming/print_ssa_graph ``` - - 发起 Pull Request :登录 github ,在自己账户下找到并进入 UserName/Paddle-Lite 仓库,这时会自动提示创建 Pull Request ,点击 Create Pull Request 按钮,一般来说会自动选择比较更改的仓库和分支,如果需要手动设置,可将 base repository 选择为 PaddlePaddle/Paddle-Lite , base 分支为 develop ,然后将 head repository 选择为 UserName/Paddle-Lite ,compare分支为 hongming/print_ssa_graph 。 PR(Pull Request) 的标题必须用英文概括本次提交的修改内容,例如修复了什么问题,增加了什么功能。同时,为了便于其他人快速得知该PR影响了哪些模块,应该在标题前添加中括号 + 模块名称进行标识,例如 "[HuaweiKirinNPU][BaiduXPU] Temporarily toggle printing ssa graph, test=develop" 。 PR 的描述必须详细描述本次修改的原因/背景、解决方法、对其它模块会产生何种影响(例如生成库的大小增量是多少),性能优化的 PR 需要有性能对比数据等。 + - 发起 Pull Request :登录 github ,在自己账户下找到并进入 UserName/Paddle-Lite 仓库,这时会自动提示创建 Pull Request ,点击 Create Pull Request 按钮,一般来说会自动选择比较更改的仓库和分支,如果需要手动设置,可将 base repository 选择为 PaddlePaddle/Paddle-Lite , base 分支为 develop ,然后将 head repository 选择为 UserName/Paddle-Lite ,compare分支为 hongming/print_ssa_graph 。 PR(Pull Request) 的标题必须用英文概括本次提交的修改内容,例如修复了什么问题,增加了什么功能。同时,为了便于其他人快速得知该PR影响了哪些模块,应该在标题前添加中括号 + 模块名称进行标识,例如 "[HuaweiKirinNPU][KunlunxinXPU] Temporarily toggle printing ssa graph, test=develop" 。 PR 的描述必须详细描述本次修改的原因/背景、解决方法、对其它模块会产生何种影响(例如生成库的大小增量是多少),性能优化的 PR 需要有性能对比数据等。 - 签署 CLA 协议:在首次向 Paddle Lite 提交 Pull Request 时,您需要您签署一次 CLA(Contributor License Agreement) 协议,以保证您的代码可以被合入。 - 等待 CI 测试完成:您在 Pull Request 中每提交一次新的 commit 后,都会触发一系列 CI 流水线(根据场景/硬件的不同,一般会有多个流水线),它将会在几个小时内完成,只需保证带有 Required 的流水线通过即可。例如下图所示,每项流水线测试通过后,都会在前面打勾,否则打叉,可点击 Details 查看日志定位错误原因: ![](https://user-images.githubusercontent.com/9973393/113404216-631e0f00-93da-11eb-8dad-fb47c8f512de.png) diff --git a/docs/guide/introduction.md b/docs/guide/introduction.md index c5735a5ae1d..8ad987c7edc 100644 --- a/docs/guide/introduction.md +++ b/docs/guide/introduction.md @@ -39,7 +39,7 @@ Paddle Lite 是一组工具,可帮助开发者在移动设备、嵌入式设 - 嵌入式 Linux:请浏览 [Linux(ARM) 工程示例](../demo_guides/linux_arm_demo) - windows、macOS、Linux 等 x86 架构的 CPU 主机: 请浏览 [Paddle Lite 使用 X86 预测部署](../demo_guides/x86) - FPGA:对于百度自研的 [EdgeBoard 开发板](https://ai.baidu.com/tech/hardware/deepkit)请浏览 [使用 EdgeBoard FPGA 预测部署](../demo_guides/fpga),对于英特尔 FPGA 平台请浏览 [Paddle Lite 使用英特尔 FPGA 预测部署](../demo_guides/intel_fpga) -- 百度 XPU(昆仑 AI 加速芯片):请浏览 [Paddle Lite 使用百度 XPU 预测部署](../demo_guides/baidu_xpu) +- 昆仑芯 XPU(昆仑 AI 加速芯片):请浏览 [Paddle Lite 使用昆仑芯 XPU 预测部署](../demo_guides/kunlunxin_xpu) - AI 加速芯片: 对于 华为麒麟 NPU 请浏览 [Paddle Lite 使用华为麒麟 NPU 预测部署](../demo_guides/huawei_kirin_npu), 对于瑞芯微 NPU 请浏览 [Paddle Lite 使用瑞芯微 NPU 预测部署](../demo_guides/rockchip_npu),对于联发科 APU 请浏览 [Paddle Lite 使用联发科 APU 预测部署](../demo_guides/mediatek_apu),对于颖脉 NNA 请浏览 [Paddle Lite 使用颖脉 NNA 预测部署](../demo_guides/imagination_nna),对于比特大陆的算丰(SOPHON)AI 芯片 请浏览 [Paddle Lite 使用 Bitmain Sophon BM1682/BM1684 预测部署](../demo_guides/bitmain) ## 技术路线 diff --git a/docs/index.rst b/docs/index.rst index f887d598e15..4df53a397a6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -70,7 +70,7 @@ Welcome to Paddle Lite's documentation! demo_guides/fpga demo_guides/huawei_kirin_npu demo_guides/huawei_ascend_npu - demo_guides/baidu_xpu + demo_guides/kunlunxin_xpu demo_guides/rockchip_npu demo_guides/amlogic_npu demo_guides/mediatek_apu diff --git a/docs/quick_start/release_lib.md b/docs/quick_start/release_lib.md index a6722b397e6..3b78a2d5727 100644 --- a/docs/quick_start/release_lib.md +++ b/docs/quick_start/release_lib.md @@ -122,7 +122,7 @@ |armv8 |[v2.10](https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.10/inference_lite_lib.armv8.clang.with_exception.with_extra.with_cv.opencl.tar.gz) | -## 百度昆仑 XPU +## 昆仑芯 XPU |Arch |下载链接 |适用的操作系统 | |:-----:|:-----:|:-----:| diff --git a/docs/quick_start/support_hardware.md b/docs/quick_start/support_hardware.md index e5f0f281480..a89a393528a 100644 --- a/docs/quick_start/support_hardware.md +++ b/docs/quick_start/support_hardware.md @@ -75,15 +75,15 @@ Paddle Lite 支持 **英特尔 (Intel) FPGA**,支持列表如下: - 英特尔 (Intel) FPGA: [Paddle Lite 使用英特尔 FPGA 预测部署](../demo_guides/intel_fpga) -## 百度 (Baidu) XPU +## 昆仑芯 (kunlunxin) XPU -Paddle Lite 支持百度 XPU,支持列表如下: -- 百度昆仑 818-100 芯片 -- 百度昆仑 818-300 芯片 +Paddle Lite 支持昆仑芯 XPU,支持列表如下: +- 昆仑芯 818-100 芯片 +- 昆仑芯 818-300 芯片 -### 百度 (Baidu) XPU 环境准备及示例程序 +### 昆仑芯 (kunlunxin) XPU 环境准备及示例程序 -- [Paddle Lite 使用百度 XPU 预测部署](../demo_guides/baidu_xpu) +- [Paddle Lite 使用昆仑芯 XPU 预测部署](../demo_guides/kunlunxin_xpu) ## 华为 (Huawei) 麒麟 NPU diff --git a/docs/quick_start/support_model_list.md b/docs/quick_start/support_model_list.md index a2f37498817..fd24a5b5d78 100644 --- a/docs/quick_start/support_model_list.md +++ b/docs/quick_start/support_model_list.md @@ -6,32 +6,32 @@ | 类别 | 类别细分 | 模型 | 支持平台 | |-|-|:-|:-| -| CV | 分类 | [MobileNetV1](https://paddlelite-demo.bj.bcebos.com/models/mobilenet_v1_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, RockchipNPU, MediatekAPU, BaiduXPU, HuaweiAscendNPU | -| CV | 分类 | [MobileNetV2](https://paddlelite-demo.bj.bcebos.com/models/mobilenet_v2_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, BaiduXPU, HuaweiAscendNPU | +| CV | 分类 | [MobileNetV1](https://paddlelite-demo.bj.bcebos.com/models/mobilenet_v1_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, RockchipNPU, MediatekAPU, KunlunxinXPU, HuaweiAscendNPU | +| CV | 分类 | [MobileNetV2](https://paddlelite-demo.bj.bcebos.com/models/mobilenet_v2_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, KunlunxinXPU, HuaweiAscendNPU | | CV | 分类 | [MobileNetV3_large](https://paddle-inference-dist.bj.bcebos.com/AI-Rank/mobile/MobileNetV3_large_x1_0.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiAscendNPU | | CV | 分类 | [MobileNetV3_small](https://paddle-inference-dist.bj.bcebos.com/AI-Rank/mobile/MobileNetV3_small_x1_0.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiAscendNPU | | CV | 分类 | DPN68 | ARM, X86 | | CV | 分类 | AlexNet | ARM, X86, HuaweiAscendNPU | | CV | 分类 | DarkNet53 | ARM, X86 | | CV | 分类 | DenseNet121 | ARM, X86, HuaweiAscendNPU | -| CV | 分类 | [EfficientNetB0](https://paddlelite-demo.bj.bcebos.com/models/EfficientNetB0.tar.gz) | ARM, X86, GPU(OPENCL), BaiduXPU, HuaweiAscendNPU | +| CV | 分类 | [EfficientNetB0](https://paddlelite-demo.bj.bcebos.com/models/EfficientNetB0.tar.gz) | ARM, X86, GPU(OPENCL), KunlunxinXPU, HuaweiAscendNPU | | CV | 分类 | GhostNet_x1_3 | ARM | | CV | 分类 | HRNet_W18_C | ARM, X86 | | CV | 分类 | RegNetX_4GF | ARM, X86 | | CV | 分类 | Xception41 | ARM, X86 | -| CV | 分类 | [ResNet18](https://paddlelite-demo.bj.bcebos.com/models/resnet18_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, RockchipNPU, BaiduXPU, HuaweiAscendNPU | -| CV | 分类 | [ResNet50](https://paddlelite-demo.bj.bcebos.com/models/resnet50_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, RockchipNPU, BaiduXPU, HuaweiAscendNPU | -| CV | 分类 | [ResNet101](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleClas/ResNet101.tgz) | ARM, X86, HuaweiKirinNPU, RockchipNPU, BaiduXPU, HuaweiAscendNPU | +| CV | 分类 | [ResNet18](https://paddlelite-demo.bj.bcebos.com/models/resnet18_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, RockchipNPU, KunlunxinXPU, HuaweiAscendNPU | +| CV | 分类 | [ResNet50](https://paddlelite-demo.bj.bcebos.com/models/resnet50_fp32_224_fluid.tar.gz) | ARM, X86, GPU(OPENCL,METAL), HuaweiKirinNPU, RockchipNPU, KunlunxinXPU, HuaweiAscendNPU | +| CV | 分类 | [ResNet101](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleClas/ResNet101.tgz) | ARM, X86, HuaweiKirinNPU, RockchipNPU, KunlunxinXPU, HuaweiAscendNPU | | CV | 分类 | [ResNeXt50](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleClas/ResNeXt50_32x4d.tgz) | ARM, X86, HuaweiAscendNPU | | CV | 分类 | [MnasNet](https://paddlelite-demo.bj.bcebos.com/models/mnasnet_fp32_224_fluid.tar.gz)| ARM, HuaweiKirinNPU, HuaweiAscendNPU | -| CV | 分类 | [SqueezeNet](https://paddlelite-demo.bj.bcebos.com/models/squeezenet_fp32_224_fluid.tar.gz) | ARM, HuaweiKirinNPU, BaiduXPU, HuaweiAscendNPU | +| CV | 分类 | [SqueezeNet](https://paddlelite-demo.bj.bcebos.com/models/squeezenet_fp32_224_fluid.tar.gz) | ARM, HuaweiKirinNPU, KunlunxinXPU, HuaweiAscendNPU | | CV | 分类 | ShuffleNet | ARM | -| CV | 分类 | [ShufflenetV2](https://paddlelite-demo.bj.bcebos.com/models/shufflenetv2.tar.gz) | ARM, BaiduXPU, HuaweiAscendNPU | +| CV | 分类 | [ShufflenetV2](https://paddlelite-demo.bj.bcebos.com/models/shufflenetv2.tar.gz) | ARM, KunlunxinXPU, HuaweiAscendNPU | | CV | 分类 | [InceptionV3](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleClas/InceptionV3.tgz) | ARM, X86, HuaweiAscendNPU | -| CV | 分类 | [InceptionV4](https://paddlelite-demo.bj.bcebos.com/models/inceptionv4.tar.gz) | ARM, X86, HuaweiKirinNPU, BaiduXPU, HuaweiAscendNPU | -| CV | 分类 | VGG16 | ARM, X86, GPU(OPENCL), BaiduXPU, HuaweiAscendNPU | -| CV | 分类 | VGG19 | ARM, X86, GPU(OPENCL,METAL), BaiduXPU, HuaweiAscendNPU| -| CV | 分类 | GoogleNet | ARM, X86, BaiduXPU, HuaweiAscendNPU | +| CV | 分类 | [InceptionV4](https://paddlelite-demo.bj.bcebos.com/models/inceptionv4.tar.gz) | ARM, X86, HuaweiKirinNPU, KunlunxinXPU, HuaweiAscendNPU | +| CV | 分类 | VGG16 | ARM, X86, GPU(OPENCL), KunlunxinXPU, HuaweiAscendNPU | +| CV | 分类 | VGG19 | ARM, X86, GPU(OPENCL,METAL), KunlunxinXPU, HuaweiAscendNPU| +| CV | 分类 | GoogleNet | ARM, X86, KunlunxinXPU, HuaweiAscendNPU | | CV | 检测 | [SSD-MobileNetV1](https://paddlelite-demo.bj.bcebos.com/models/ssd_mobilenet_v1_pascalvoc_fp32_300_fluid.tar.gz) | ARM, HuaweiKirinNPU*, HuaweiAscendNPU* | | CV | 检测 | [SSD-MobileNetV3-large](https://paddle-inference-dist.bj.bcebos.com/AI-Rank/mobile/ssdlite_mobilenet_v3_large.tar.gz) | ARM, X86, GPU(OPENCL,METAL) | | CV | 检测 | [SSD-VGG16](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleDetection/ssd_vgg16_300_240e_voc.tgz) | ARM, X86, HuaweiAscendNPU* | @@ -64,9 +64,9 @@ | CV | 人脸 | [BlazeFace*](https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.4/docs/featured_model/FACE_DETECTION.md#BlazeFace) | ARM | | CV | 人脸 | [MTCNN](https://paddlelite-demo.bj.bcebos.com/models/mtcnn.zip) | ARM, GPU(OPENCL) | | NLP | 机器翻译 | [Transformer*](https://github.com/PaddlePaddle/models/tree/release/1.8/PaddleNLP/machine_translation/transformer) | ARM,HuaweiKirinNPU* | -| NLP | 机器翻译 | [BERT](https://paddle-inference-dist.bj.bcebos.com/PaddleLite/models_and_data_for_unittests/bert.tar.gz) | BaiduXPU | -| NLP | 语义表示 | [ERNIE](https://paddle-inference-dist.bj.bcebos.com/PaddleLite/models_and_data_for_unittests/ernie.tar.gz) | BaiduXPU | -| NLP | 语义理解 | [ERNIE-TINY](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleNLP/ernie_tiny.tgz) | ARM,BaiduXPU,HuaweiAscendNPU* | +| NLP | 机器翻译 | [BERT](https://paddle-inference-dist.bj.bcebos.com/PaddleLite/models_and_data_for_unittests/bert.tar.gz) | KunlunxinXPU | +| NLP | 语义表示 | [ERNIE](https://paddle-inference-dist.bj.bcebos.com/PaddleLite/models_and_data_for_unittests/ernie.tar.gz) | KunlunxinXPU | +| NLP | 语义理解 | [ERNIE-TINY](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleNLP/ernie_tiny.tgz) | ARM,KunlunxinXPU,HuaweiAscendNPU* | | GAN | 风格转换 | [CycleGAN*](https://github.com/PaddlePaddle/models/tree/release/1.7/PaddleCV/gan/cycle_gan) | HuaweiKirinNPU | | GAN | 超分辨率 | [ESRGAN](https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleGAN/esrgan_psnr_x4_div2k.tgz) |ARM,X86,HuaweiAscendNPU| diff --git a/docs/quick_start/support_operation_list.md b/docs/quick_start/support_operation_list.md index 57f8c7e857c..a85d9b708ff 100644 --- a/docs/quick_start/support_operation_list.md +++ b/docs/quick_start/support_operation_list.md @@ -10,7 +10,7 @@ Host 端 Kernel 是算子在任意 CPU 上纯 C/C++ 的具体实现,具有可 以 ARM CPU 为例,如果模型中某个算子没有 ARM 端 Kernel,但是有 Host 端 Kernel,那么模型优化阶段该算子会选择 Host 端 Kernel,该模型还是可以顺利部署。 -| OP_name| ARM | OpenCL | Metal | 百度XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | +| OP_name| ARM | OpenCL | Metal | 昆仑芯XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | |-:|-| -| -| -| -| -| -| -| -| -| -| -| -| -| -| | affine_channel|Y| | | | | | | | | | | | | | | | affine_grid|Y| | | | | | | | | | | | | | | @@ -110,7 +110,7 @@ Host 端 Kernel 是算子在任意 CPU 上纯 C/C++ 的具体实现,具有可 加上附加算子共计 269 个,需要在编译时打开 `--with_extra=ON` 开关才会编译,具体请参考[参数详情](../source_compile/compile_options)。 -| OP_name| ARM | OpenCL | Metal | 百度XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | +| OP_name| ARM | OpenCL | Metal | 昆仑芯XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | |-:|-| -| -| -| -| -| -| -| -| -| -| -| -| -| -| | abs|Y|Y| |Y|Y| | | | |Y| | | | | | | affine_channel|Y| | | | | | | | | | | | | | | diff --git a/docs/quick_start/tutorial.md b/docs/quick_start/tutorial.md index d22c2edc490..9ac48fbedfa 100644 --- a/docs/quick_start/tutorial.md +++ b/docs/quick_start/tutorial.md @@ -51,7 +51,7 @@ Paddle Lite 提供了 `C++` 、`Java` 、`Python` 三种 `API` 的完整使用 - [ OpenCL 示例](../demo_guides/opencl) - [ FPGA 示例](../demo_guides/fpga) - [华为 NPU 示例](../demo_guides/huawei_kirin_npu) -- [百度 XPU 示例](../demo_guides/baidu_xpu) +- [昆仑芯 XPU 示例](../demo_guides/kunlunxin_xpu) - [瑞芯微 NPU 示例](../demo_guides/rockchip_npu) - [晶晨 NPU 示例](../demo_guides/amlogic_npu) - [联发科 APU 示例](../demo_guides/mediatek_apu) diff --git a/docs/source_compile/arm_linux_compile_arm_linux.rst b/docs/source_compile/arm_linux_compile_arm_linux.rst index ffc27248d5e..10f41c67ccd 100644 --- a/docs/source_compile/arm_linux_compile_arm_linux.rst +++ b/docs/source_compile/arm_linux_compile_arm_linux.rst @@ -28,7 +28,7 @@ ARM Linux 环境下编译适用于 ARM Linux 的库 * - Host环境 - 目标硬件环境 * - ARM-Linux - - CPU arm64/armhf :raw-html-m2r:`
` Huawei Ascend NPU :raw-html-m2r:`
` Baidu XPU :raw-html-m2r:`
` OpenCL :raw-html-m2r:`
` 注:查询以上芯片支持的具体型号,可参考\ `支持硬件列表 `_\ 章节。 + - CPU arm64/armhf :raw-html-m2r:`
` Huawei Ascend NPU :raw-html-m2r:`
` Kunlunxin XPU :raw-html-m2r:`
` OpenCL :raw-html-m2r:`
` 注:查询以上芯片支持的具体型号,可参考\ `支持硬件列表 `_\ 章节。 准备编译环境 ------------------------------------------------------ @@ -173,7 +173,7 @@ Paddle Lite 仓库中\ ``./lite/tools/build_linux.sh``\ 脚本文件用于构建 .. include:: include/multi_device_support/opencl.rst -.. include:: include/multi_device_support/baidu_xpu.rst +.. include:: include/multi_device_support/kunlunxin_xpu.rst .. include:: include/multi_device_support/nnadapter_support_introduction.rst diff --git a/docs/source_compile/compile_options.md b/docs/source_compile/compile_options.md index 8f1a4c8bfd0..5bbadd434cc 100644 --- a/docs/source_compile/compile_options.md +++ b/docs/source_compile/compile_options.md @@ -45,5 +45,4 @@ | LITE_ON_MODEL_OPTIMIZE_TOOL | 编译[模型优化工具 opt](https://paddle-lite.readthedocs.io/zh/develop/user_guides/model_optimize_tool.html) | X86 |OFF| | LITE_WITH_PYTHON | 编译支持 [Python API](https://paddle-lite.readthedocs.io/zh/develop/api_reference/python_api_doc.html) 的预测库 | X86 / CUDA |OFF | | LITE_WITH_OPENCL | 编译 [OpenCL 平台](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/opencl.html)预测库 | OpenCL | OFF | -| LITE_WITH_XPU | 编译[百度 XPU 平台](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/baidu_xpu.html)预测库 | XPU |OFF | -| LITE_WITH_XTCL | 通过 XTCL 方式支持百度 XPU,默认 Kernel 方式 | XPU |OFF IF LITE_WITH_XPU | +| LITE_WITH_XPU | 编译[昆仑芯 XPU 平台](https://paddle-lite.readthedocs.io/zh/develop/demo_guides/kunlunxin_xpu.html)预测库 | XPU |OFF | diff --git a/docs/source_compile/include/multi_device_support/baidu_xpu.rst b/docs/source_compile/include/multi_device_support/baidu_xpu.rst deleted file mode 100644 index 4f8a6350531..00000000000 --- a/docs/source_compile/include/multi_device_support/baidu_xpu.rst +++ /dev/null @@ -1,37 +0,0 @@ -百度昆仑 XPU -^^^^^^^^^^^^ - -* 介绍 - -Paddle Lite 已通过算子方式支持百度昆仑 XPU 在 x86 和 ARM 服务器(例如飞腾 FT-2000+/64)上进行预测部署。 - -* 基本参数 - -.. list-table:: - - * - 参数 - - 说明 - - 可选范围 - - 默认值 - * - with_baidu_xpu - - 是否包含 baidu xpu 编译 - - OFF / ON - - OFF - * - baidu_xpu_sdk_root - - 设置 baidu xpu sdk 目录 - - 用户自定义 - - 空值 - * - with_baidu_xpu_xtcl - - 编译 xpu 库时是否使能 xtcl - - OFF / ON - - OFF - * - baidu_xpu_sdk_url - - baidu xpu sdk 下载链接 - - 用户自定义 - - https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev_paddle - * - baidu_xpu_sdk_env - - baidu xpu sdk 环境 - - bdcentos_x86_64 / centos7_x86_64 / ubuntu_x86_64 / kylin_aarch64 - - bdcentos_x86_64(x86) / kylin_aarch64(arm) - -详细请参考 `百度昆仑 XPU 部署示例 `_ diff --git a/docs/source_compile/include/multi_device_support/kunlunxin_xpu.rst b/docs/source_compile/include/multi_device_support/kunlunxin_xpu.rst new file mode 100644 index 00000000000..8b1e8e3771b --- /dev/null +++ b/docs/source_compile/include/multi_device_support/kunlunxin_xpu.rst @@ -0,0 +1,33 @@ +昆仑芯 XPU +^^^^^^^^^^^^ + +* 介绍 + +Paddle Lite 已通过算子方式支持昆仑芯 XPU 在 x86 和 ARM 服务器(例如飞腾 FT-2000+/64)上进行预测部署。 + +* 基本参数 + +.. list-table:: + + * - 参数 + - 说明 + - 可选范围 + - 默认值 + * - with_kunlunxin_xpu + - 是否包含 kunlunxin xpu 编译 + - OFF / ON + - OFF + * - kunlunxin_xpu_sdk_url + - kunlunxin xpu sdk 下载链接 + - 用户自定义 + - https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev_paddle + * - kunlunxin_xpu_sdk_env + - kunlunxin xpu sdk 环境 + - bdcentos_x86_64 / centos7_x86_64 / ubuntu_x86_64 / kylin_aarch64 + - bdcentos_x86_64(x86) / kylin_aarch64(arm) + * - kunlunxin_xpu_sdk_root + - 设置 kunlunxin xpu sdk 目录 + - 用户自定义 + - 空值 + +详细请参考 `昆仑芯 XPU 部署示例 `_ diff --git a/docs/source_compile/linux_x86_compile_arm_linux.rst b/docs/source_compile/linux_x86_compile_arm_linux.rst index 849402422e8..136309891ad 100644 --- a/docs/source_compile/linux_x86_compile_arm_linux.rst +++ b/docs/source_compile/linux_x86_compile_arm_linux.rst @@ -28,7 +28,7 @@ Linux x86 环境下编译适用于 ARM Linux 的库 * - Host 环境 - 目标硬件环境 * - x86 Linux - - CPU arm64/armhf :raw-html-m2r:`
` Huawei Ascend NPU :raw-html-m2r:`
` Baidu XPU :raw-html-m2r:`
` OpenCL :raw-html-m2r:`
` Rockchip NPU :raw-html-m2r:`
` Amlogic NPU :raw-html-m2r:`
` Imagination NNA :raw-html-m2r:`
` Intel FPGA :raw-html-m2r:`
` 注:查询以上芯片支持的具体型号,可参考\ `支持硬件列表 `_\ 章节。 + - CPU arm64/armhf :raw-html-m2r:`
` Huawei Ascend NPU :raw-html-m2r:`
` Kunlunxin XPU :raw-html-m2r:`
` OpenCL :raw-html-m2r:`
` Rockchip NPU :raw-html-m2r:`
` Amlogic NPU :raw-html-m2r:`
` Imagination NNA :raw-html-m2r:`
` Intel FPGA :raw-html-m2r:`
` 注:查询以上芯片支持的具体型号,可参考\ `支持硬件列表 `_\ 章节。 准备编译环境 ------------------------------------------------------ @@ -175,7 +175,7 @@ Paddle Lite 仓库中 \ ``./lite/tools/build_linux.sh``\ 脚本文件用于构 .. include:: include/multi_device_support/intel_fpga.rst -.. include:: include/multi_device_support/baidu_xpu.rst +.. include:: include/multi_device_support/kunlunxin_xpu.rst .. include:: include/multi_device_support/nnadapter_support_introduction.rst diff --git a/docs/source_compile/linux_x86_compile_linux_x86.rst b/docs/source_compile/linux_x86_compile_linux_x86.rst index cd2479d8621..406100512af 100644 --- a/docs/source_compile/linux_x86_compile_linux_x86.rst +++ b/docs/source_compile/linux_x86_compile_linux_x86.rst @@ -28,7 +28,7 @@ Linux x86 环境下编译适用于 Linux x86 的库 * - Host 环境 - 目标硬件环境 * - x86 Linux - - CPU x86_32/64 :raw-html-m2r:`
` Huawei Ascend NPU :raw-html-m2r:`
` Baidu XPU :raw-html-m2r:`
` OpenCL :raw-html-m2r:`
` 注:查询以上芯片支持的具体型号,可参考\ `支持硬件列表 `_\ 章节。 + - CPU x86_32/64 :raw-html-m2r:`
` Huawei Ascend NPU :raw-html-m2r:`
` Kunlunxin XPU :raw-html-m2r:`
` OpenCL :raw-html-m2r:`
` 注:查询以上芯片支持的具体型号,可参考\ `支持硬件列表 `_\ 章节。 准备编译环境 ------------------------------------------------------ @@ -182,7 +182,7 @@ Paddle Lite 仓库中\ ``./lite/tools/build_linux.sh``\ 脚本文件用于构建 .. include:: include/multi_device_support/opencl.rst -.. include:: include/multi_device_support/baidu_xpu.rst +.. include:: include/multi_device_support/kunlunxin_xpu.rst .. include:: include/multi_device_support/nnadapter_support_introduction.rst diff --git a/docs/source_compile/windows_compile_windows.rst b/docs/source_compile/windows_compile_windows.rst index b0e74104395..8257cad3e7f 100644 --- a/docs/source_compile/windows_compile_windows.rst +++ b/docs/source_compile/windows_compile_windows.rst @@ -110,12 +110,10 @@ Windows 环境下编译适用于 Windows 的库 - 使用 vs2019 构建系统(默认使用 vs2015 的构建方案,添加上此编译选项使用 vs2019 编译构建) * - without_avx - 使用 AVX/SSE 指令对 x86 Kernel 进行加速 - * - with_baidu_xpu - - 使用 XPU kernel 进行加速 - * - with_baidu_xpu_xtcl - - 使用 XTCL 对 XPU kernel进行加速(默认不使用,添加此编译选项需同时开启 with_baidu_xpu) - * - baidu_xpu_sdk_root - - 启用 with_baidu_xpu 或者 with_baidu_xpu_xtcl 时,需要添加 XPU 的 Windows 产出包的相关路径 + * - with_kunlunxin_xpu + - 使用昆仑芯 XPU kernel 进行加速 + * - kunlunxin_xpu_sdk_root + - 启用 with_kunlunxin_xpu 时,需要添加昆仑芯 XPU 的 Windows 产出包的相关路径 编译脚本使用示例 diff --git a/docs/user_guides/model_visualization.md b/docs/user_guides/model_visualization.md index be9ec3b9628..f7b1ec9d1d8 100644 --- a/docs/user_guides/model_visualization.md +++ b/docs/user_guides/model_visualization.md @@ -93,7 +93,7 @@ Paddle Lite 在执行模型推理之前需要使用[模型优化工具 opt](mode ## Lite子图方式下模型可视化 -当模型优化的目标硬件平台为 [华为 NPU](../demo_guides/huawei_kirin_npu), [百度 XPU](../demo_guides/baidu_xpu), [瑞芯微 NPU](../demo_guides/rockchip_npu), [联发科 APU](../demo_guides/mediatek_apu) 等通过子图方式接入的硬件平台时,得到的优化后的`protobuf`格式模型中运行在这些硬件平台上的算子都由`subgraph`算子包含,无法查看具体的网络结构。 +当模型优化的目标硬件平台为 [华为 NPU](../demo_guides/huawei_kirin_npu), [昆仑芯 XPU](../demo_guides/kunlunxin_xpu), [瑞芯微 NPU](../demo_guides/rockchip_npu), [联发科 APU](../demo_guides/mediatek_apu) 等通过子图方式接入的硬件平台时,得到的优化后的`protobuf`格式模型中运行在这些硬件平台上的算子都由`subgraph`算子包含,无法查看具体的网络结构。 以[华为 NPU](../demo_guides/huawei_kirin_npu) 为例,运行以下命令进行模型优化,得到输出文件夹下的`model, params`两个文件。 diff --git a/lite/tools/build_linux.sh b/lite/tools/build_linux.sh index 0e72c2b5065..1d858838b4a 100755 --- a/lite/tools/build_linux.sh +++ b/lite/tools/build_linux.sh @@ -58,11 +58,10 @@ NNADAPTER_KUNLUNXIN_XTCL_SDK_URL="" NNADAPTER_KUNLUNXIN_XTCL_SDK_ENV="" # options of compiling baidu XPU lib. -WITH_BAIDU_XPU=OFF -WITH_BAIDU_XPU_XTCL=OFF -BAIDU_XPU_SDK_ROOT="" -BAIDU_XPU_SDK_URL="" -BAIDU_XPU_SDK_ENV="" +WITH_KUNLUNXIN_XPU=OFF +KUNLUNXIN_XPU_SDK_URL="" +KUNLUNXIN_XPU_SDK_ENV="" +KUNLUNXIN_XPU_SDK_ROOT="" # options of compiling intel fpga. WITH_INTEL_FPGA=OFF INTEL_FPGA_SDK_ROOT="$(pwd)/intel_fpga_sdk" @@ -156,7 +155,12 @@ function init_cmake_mutable_options { WITH_EXTRA=ON fi - if [ "${WITH_BAIDU_XPU}" == "ON" ]; then + if [ "${WITH_KUNLUNXIN_XPU}" == "ON" ]; then + WITH_EXTRA=ON + WITH_TINY_PUBLISH=OFF + fi + + if [ "${DNNADAPTER_WITH_KUNLUNXIN_XTCL}" == "ON" ]; then WITH_EXTRA=ON WITH_TINY_PUBLISH=OFF fi @@ -186,11 +190,11 @@ function init_cmake_mutable_options { -DLITE_WITH_METAL=$WITH_METAL \ -DLITE_WITH_RKNPU=$WITH_ROCKCHIP_NPU \ -DRKNPU_DDK_ROOT=$ROCKCHIP_NPU_SDK_ROOT \ - -DLITE_WITH_XPU=$WITH_BAIDU_XPU \ - -DLITE_WITH_XTCL=$WITH_BAIDU_XPU_XTCL \ - -DXPU_SDK_ROOT=$BAIDU_XPU_SDK_ROOT \ - -DXPU_SDK_URL=$BAIDU_XPU_SDK_URL \ - -DXPU_SDK_ENV=$BAIDU_XPU_SDK_ENV \ + -DLITE_WITH_XPU=$WITH_KUNLUNXIN_XPU \ + -DLITE_WITH_XTCL=OFF \ + -DXPU_SDK_URL=$KUNLUNXIN_XPU_SDK_URL \ + -DXPU_SDK_ENV=$KUNLUNXIN_XPU_SDK_ENV \ + -DXPU_SDK_ROOT=$KUNLUNXIN_XPU_SDK_ROOT \ -DLITE_WITH_TRAIN=$WITH_TRAIN \ -DLITE_WITH_NNADAPTER=$WITH_NNADAPTER \ -DNNADAPTER_WITH_ROCKCHIP_NPU=$NNADAPTER_WITH_ROCKCHIP_NPU \ @@ -305,8 +309,8 @@ function make_publish_so { if [ "${WITH_METAL}" = "ON" ]; then build_dir=${build_dir}.metal fi - if [ "${WITH_BAIDU_XPU}" = "ON" ]; then - build_dir=${build_dir}.baidu_xpu + if [ "${WITH_KUNLUNXIN_XPU}" = "ON" ]; then + build_dir=${build_dir}.kunlunxin_xpu fi if [ -d $build_dir ]; then @@ -391,15 +395,16 @@ function print_usage { echo -e "| you can download cambricon MLU SDK from: |" echo -e "| detailed information about Paddle-Lite CAMBRICON MLU: https://paddle-lite.readthedocs.io/zh/latest/demo_guides/cambricon_mlu.html |" echo -e "| |" - echo -e "| arguments of baidu xpu library compiling: |" - echo -e "| ./lite/tools/build_linux.sh --arch=x86 --with_baidu_xpu=ON |" - echo -e "| ./lite/tools/build_linux.sh --arch=armv8 --with_baidu_xpu=ON |" - echo -e "| --with_baidu_xpu: (OFF|ON); controls whether to compile lib for baidu_xpu, default is OFF. |" - echo -e "| --with_baidu_xpu_xtcl: (OFF|ON); controls whether to enable xtcl for baidu_xpu, default is OFF. |" - echo -e "| --baidu_xpu_sdk_root: (path to baidu_xpu DDK file) optional, default is None |" - echo -e "| --baidu_xpu_sdk_url: (baidu_xpu sdk download url) optional, default is 'https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev_paddle' |" - echo -e "| --baidu_xpu_sdk_env: (bdcentos_x86_64|centos7_x86_64|ubuntu_x86_64|kylin_aarch64) optional, |" + echo -e "| arguments of kunlunxin xpu library compiling: |" + echo -e "| ./lite/tools/build_linux.sh --arch=x86 --with_kunlunxin_xpu=ON |" + echo -e "| ./lite/tools/build_linux.sh --arch=armv8 --with_kunlunxin_xpu=ON |" + echo -e "| --with_kunlunxin_xpu: (OFF|ON); controls whether to compile lib for kunlunxin_xpu, default is OFF. |" + echo -e "| --kunlunxin_xpu_sdk_url: (kunlunxin_xpu sdk download url) optional, default is |" + echo -e "| 'https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev_paddle' |" + echo -e "| --kunlunxin_xpu_sdk_env: (bdcentos_x86_64|centos7_x86_64|ubuntu_x86_64|kylin_aarch64) optional, |" echo -e "| default is bdcentos_x86_64(if x86) / kylin_aarch64(if arm) |" + echo -e "| --kunlunxin_xpu_sdk_root: (path to kunlunxin_xpu DDK file) optional, default is None |" + echo -e "| detailed information about Paddle-Lite CAMBRICON MLU: https://paddle-lite.readthedocs.io/zh/latest/demo_guides/kunlunxin_xpu.html |" echo "--------------------------------------------------------------------------------------------------------------------------------------------------------" echo } @@ -574,26 +579,44 @@ function main { ;; # compiling lib which can operate on baidu xpu. --with_baidu_xpu=*) - WITH_BAIDU_XPU="${i#*=}" + WITH_KUNLUNXIN_XPU="${i#*=}" shift ;; --with_baidu_xpu_xtcl=*) - WITH_BAIDU_XPU_XTCL="${i#*=}" shift ;; --baidu_xpu_sdk_root=*) - BAIDU_XPU_SDK_ROOT="${i#*=}" - if [ -n "${BAIDU_XPU_SDK_ROOT}" ]; then - BAIDU_XPU_SDK_ROOT=$(readlink -f ${BAIDU_XPU_SDK_ROOT}) + KUNLUNXIN_XPU_SDK_ROOT="${i#*=}" + if [ -n "${KUNLUNXIN_XPU_SDK_ROOT}" ]; then + KUNLUNXIN_XPU_SDK_ROOT=$(readlink -f ${KUNLUNXIN_XPU_SDK_ROOT}) fi shift ;; --baidu_xpu_sdk_url=*) - BAIDU_XPU_SDK_URL="${i#*=}" + KUNLUNXIN_XPU_SDK_URL="${i#*=}" shift ;; --baidu_xpu_sdk_env=*) - BAIDU_XPU_SDK_ENV="${i#*=}" + KUNLUNXIN_XPU_SDK_ENV="${i#*=}" + shift + ;; + --with_kunlunxin_xpu=*) + WITH_KUNLUNXIN_XPU="${i#*=}" + shift + ;; + --kunlunxin_xpu_sdk_url=*) + KUNLUNXIN_XPU_SDK_URL="${i#*=}" + shift + ;; + --kunlunxin_xpu_sdk_env=*) + KUNLUNXIN_XPU_SDK_ENV="${i#*=}" + shift + ;; + --kunlunxin_xpu_sdk_root=*) + KUNLUNXIN_XPU_SDK_ROOT="${i#*=}" + if [ -n "${KUNLUNXIN_XPU_SDK_ROOT}" ]; then + KUNLUNXIN_XPU_SDK_ROOT=$(readlink -f ${KUNLUNXIN_XPU_SDK_ROOT}) + fi shift ;; # compiling lib which can operate on intel fpga. diff --git a/lite/tools/build_windows.bat b/lite/tools/build_windows.bat index 0f27a8fc473..4aad0447183 100644 --- a/lite/tools/build_windows.bat +++ b/lite/tools/build_windows.bat @@ -16,8 +16,8 @@ set MSVC_STATIC_CRT=ON set WITH_STATIC_MKL=OFF set WITH_OPENCL=OFF set WITH_AVX=ON -set WITH_BAIDU_XPU_XTCL=OFF -set WITH_BAIDU_XPU=OFF +set WITH_KUNLUNXIN_XPU=OFF +set KUNLUNXIN_XPU_SDK_ROOT="" set BUILD_TYPE=Release set CMAKE_GENERATOR=Visual Studio 14 2015 set ARCH="" @@ -25,7 +25,6 @@ set WITH_STRIP=OFF set OPTMODEL_DIR="" set THIRDPARTY_URL=https://paddlelite-data.bj.bcebos.com/third_party_libs/ set THIRDPARTY_TAR=third-party-801f670.tar.gz -set BAIDU_XPU_SDK_ROOT="" set workspace=%source_path% set /a cores=%number_of_processors%-2 > null @@ -61,12 +60,10 @@ if /I "%1"=="with_extra" ( set WITH_OPENCL=ON ) else if /I "%1"=="without_avx" ( set WITH_AVX=OFF -) else if /I "%1"=="with_baidu_xpu" ( - set WITH_BAIDU_XPU=ON -) else if /I "%1"=="with_baidu_xpu_xtcl" ( - set WITH_BAIDU_XPU_XTCL=ON -) else if /I "%1"=="baidu_xpu_sdk_root" ( - set BAIDU_XPU_SDK_ROOT="%2" +) else if /I "%1"=="with_kunlunxin_xpu" ( + set WITH_KUNLUNXIN_XPU=ON +) else if /I "%1"=="kunlunxin_xpu_sdk_root" ( + set KUNLUNXIN_XPU_SDK_ROOT="%2" ) else if /I "%1"=="build_for_ci" ( set BUILD_FOR_CI=ON set WITH_TESTING=ON @@ -102,9 +99,8 @@ echo "| WITH_STATIC_MKL=%WITH_STATIC_MKL% echo "| MSVC_STATIC_CRT=%MSVC_STATIC_CRT% |" echo "| WITH_OPENCL=%WITH_OPENCL% |" echo "| WITH_AVX=%WITH_AVX% |" -echo "| WITH_BAIDU_XPU=%WITH_BAIDU_XPU% |" -echo "| WITH_BAIDU_XPU_XTCL=%WITH_BAIDU_XPU_XTCL% |" -echo "| BAIDU_XPU_SDK_ROOT=%BAIDU_XPU_SDK_ROOT% |" +echo "| WITH_KUNLUNXIN_XPU=%WITH_KUNLUNXIN_XPU% |" +echo "| KUNLUNXIN_XPU_SDK_ROOT=%KUNLUNXIN_XPU_SDK_ROOT% |" echo "------------------------------------------------------------------------------------------------------|" @@ -176,9 +172,9 @@ if "%CMAKE_GENERATOR%"=="Ninja" ( -DLITE_WITH_PROFILE=%WITH_PROFILE% ^ -DLITE_WITH_PRECISION_PROFILE=%WITH_PRECISION_PROFILE% ^ -DWITH_LITE=ON ^ - -DLITE_WITH_XPU=%WITH_BAIDU_XPU% ^ - -DLITE_WITH_XTCL=%WITH_BAIDU_XPU_XTCL% ^ - -DXPU_SDK_ROOT=%BAIDU_XPU_SDK_ROOT% ^ + -DLITE_WITH_XPU=%WITH_KUNLUNXIN_XPU% ^ + -DLITE_WITH_XTCL=OFF ^ + -DXPU_SDK_ROOT=%KUNLUNXIN_XPU_SDK_ROOT% ^ -DLITE_WITH_LIGHT_WEIGHT_FRAMEWORK=OFF ^ -DLITE_WITH_ARM=OFF ^ -DLITE_WITH_OPENCL=%WITH_OPENCL% ^ @@ -224,9 +220,9 @@ goto:eof -DLITE_WITH_PROFILE=%WITH_PROFILE% ^ -DLITE_WITH_PRECISION_PROFILE=%WITH_PRECISION_PROFILE% ^ -DWITH_LITE=ON ^ - -DLITE_WITH_XPU=%WITH_BAIDU_XPU% ^ - -DLITE_WITH_XTCL=%WITH_BAIDU_XPU_XTCL% ^ - -DXPU_SDK_ROOT=%BAIDU_XPU_SDK_ROOT% ^ + -DLITE_WITH_XPU=%WITH_KUNLUNXIN_XPU% ^ + -DLITE_WITH_XTCL=OFF ^ + -DXPU_SDK_ROOT=%KUNLUNXIN_XPU_SDK_ROOT% ^ -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^ -DTHIRD_PARTY_BUILD_TYPE=Release ^ -DLITE_WITH_LIGHT_WEIGHT_FRAMEWORK=OFF ^