Skip to content

Commit e945b2d

Browse files
authored
[Cherry-Pick][Doc] Android NNPI, TIM-VX, TensorRT (#8950)
test=document_fix
1 parent d7d6360 commit e945b2d

File tree

9 files changed

+69
-24
lines changed

9 files changed

+69
-24
lines changed

docs/demo_guides/android_nnapi.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# Android NN API 部署示例
1+
# Android NNAPI 部署示例
22

3-
Paddle Lite 已支持 Android NN API 的预测部署。
4-
其接入原理是加载并分析 Paddle 模型,将 Paddle 算子先转为统一的 NNAdapter 标准算子,再通过 Android NN API 进行网络构建,在线生成并执行模型。
5-
需要注意由于不同 SoC 芯片对 Android NN API 的支持程度不同,其底层各个计算 IP(CPU、GPU、DSP、NPU 等)对 Android NN API 的支持也不同,性能也会有较大区别。
6-
用户可以在运行日志中,搜索关键字『Available devices:』来查看当前 SoC 对 Android NN API 的支持情况。
3+
Paddle Lite 已支持 Android NNAPI 的预测部署。
4+
其接入原理是加载并分析 Paddle 模型,将 Paddle 算子先转为统一的 NNAdapter 标准算子,再通过 Android NNAPI 进行网络构建,在线生成并执行模型。
5+
需要注意由于不同 SoC 芯片对 Android NNAPI 的支持程度不同,其底层各个计算 IP(CPU、GPU、DSP、NPU 等)对 Android NNAPI 的支持也不同,性能也会有较大区别。
6+
用户可以在运行日志中,搜索关键字『Available devices:』来查看当前 SoC 对 Android NNAPI 的支持情况。
77

88
## 支持现状
99

1010
### 已支持的设备
1111

12-
- 所有支持 Android NN API 的终端设备,Android SDK version 需在 27 及以上。
12+
- 所有支持 Android NNAPI 的终端设备,系统版本 Android 8.1(Oreo) 及以上,Android SDK version 需在 27 及以上。
1313

1414
### 已支持的 Paddle 模型
1515

@@ -38,9 +38,9 @@ Paddle Lite 已支持 Android NN API 的预测部署。
3838
- warmup=1,repeats=5,统计平均时间,单位是 ms
3939
- 线程数为 1,`paddle::lite_api::PowerMode CPU_POWER_MODE` 设置为 ` paddle::lite_api::PowerMode::LITE_POWER_HIGH`
4040
- 分类模型的输入图像维度是{1, 3, 224, 224},检测模型的维度是{1, 3, 300, 300}
41-
- 华为 Kirin NPU 对 Android NN API 的支持程度较高,但是由于其量化方式与 Paddle 有较大出入,量化模型无法发挥 NPU 加速特性,所以 fp32 模型性能较好
42-
- 高通 骁龙系列芯片(855 以后),DSP,GPU 等 IP 支持 Android NN API,但其 HTA|HTP 暂不支持 Android NN API
43-
- 不同 SoC 对 Android NN API 的支持程度不同,如下仅举例华为 Kirin990-5G 和 高通 骁龙865
41+
- 华为 Kirin NPU 对 Android NNAPI 的支持程度较高,但是由于其量化方式与 Paddle 有较大出入,量化模型无法发挥 NPU 加速特性,所以 fp32 模型性能较好
42+
- 高通 骁龙系列芯片(855 以后),DSP,GPU 等 IP 支持 Android NNAPI,但其 HTA|HTP 暂不支持 Android NNAPI
43+
- 不同 SoC 对 Android NNAPI 的支持程度不同,如下仅举例华为 Kirin990-5G 和 高通 骁龙865
4444

4545
- 测试结果
4646

@@ -102,7 +102,7 @@ Paddle Lite 已支持 Android NN API 的预测部署。
102102
- armeabi-v7a
103103
- include
104104
- lib
105-
- android_nnapi # NNAdapter 运行时库、Android NN API device HAL 库
105+
- android_nnapi # NNAdapter 运行时库、Android NNAPI device HAL 库
106106
- libnnadapter.so # NNAdapter 运行时库
107107
- libandroid_nnapi.so # NNAdapter device HAL 库
108108
- libpaddle_full_api_shared.so # 预编译 Paddle Lite full api 库
@@ -113,7 +113,7 @@ Paddle Lite 已支持 Android NN API 的预测部署。
113113
```
114114

115115
- Android shell 端的示例程序
116-
- 按照以下命令分别运行转换后的 ARM CPU 模型和 Android NN API 模型,比较它们的性能和结果;
116+
- 按照以下命令分别运行转换后的 ARM CPU 模型和 Android NNAPI 模型,比较它们的性能和结果;
117117

118118
```shell
119119
注意:
@@ -141,7 +141,7 @@ Paddle Lite 已支持 Android NN API 的预测部署。
141141
Prediction time: 102.615802 ms
142142
Postprocess time: 0.280000 ms
143143

144-
基于 Android NN API 上运行 mobilenetv1 全量化模型
144+
基于 Android NNAPI 上运行 mobilenetv1 全量化模型
145145
$ cd PaddleLite-generic-demo/image_classification_demo/shell
146146
$ ./run_with_adb.sh mobilenet_v1_int8_224_per_layer android armeabi-v7a android_nnapi d3869b25
147147
...
@@ -178,7 +178,7 @@ Paddle Lite 已支持 Android NN API 的预测部署。
178178

179179
- 通过 Paddle 训练,或 X2Paddle 转换得到 MobileNetv1 foat32 模型[ mobilenet_v1_fp32_224_fluid ](https://paddlelite-demo.bj.bcebos.com/models/mobilenet_v1_fp32_224_fluid.tar.gz);
180180
- 如果需要使用量化模型,则参考[模型量化-静态离线量化](../user_guides/quant_aware)使用 PaddleSlim 对 `float32` 模型进行量化(注意:由于 DSP 只支持量化 OP,在启动量化脚本时请注意相关参数的设置),最终得到全量化MobileNetV1 模型[ mobilenet_v1_int8_224_per_layer ](https://paddlelite-demo.bj.bcebos.com/models/mobilenet_v1_int8_224_per_layer.tar.gz);
181-
- 参考[模型转化方法](../user_guides/model_optimize_tool),利用 opt 工具转换生成 Android NN API 模型,仅需要将 `valid_targets` 设置为 andriod_nnapi, arm 即可。
181+
- 参考[模型转化方法](../user_guides/model_optimize_tool),利用 opt 工具转换生成 Android NNAPI 模型,仅需要将 `valid_targets` 设置为 andriod_nnapi, arm 即可。
182182

183183
```shell
184184
# 注意:
@@ -191,9 +191,9 @@ Paddle Lite 已支持 Android NN API 的预测部署。
191191
--valid_targets=android_nnapi,arm
192192
```
193193

194-
- 注意:opt 生成的模型只是标记了 Android NN API 支持的 Paddle 算子,并没有真正生成 Android NN API 模型,只有在执行时才会将标记的 Paddle 算子转成 `Android NN API` 调用实现组网,最终生成并执行模型。
194+
- 注意:opt 生成的模型只是标记了 Android NNAPI 支持的 Paddle 算子,并没有真正生成 Android NNAPI 模型,只有在执行时才会将标记的 Paddle 算子转成 `Android NNAPI` 调用实现组网,最终生成并执行模型。
195195

196-
### 更新支持 Android NN API 的 Paddle Lite 库
196+
### 更新支持 Android NNAPI 的 Paddle Lite 库
197197

198198
- 下载 Paddle Lite 源码;
199199

@@ -203,7 +203,7 @@ Paddle Lite 已支持 Android NN API 的预测部署。
203203
$ git checkout <release-version-tag>
204204
```
205205

206-
- 编译并生成 `PaddleLite+Android NN API` for armv8 and armv7 的部署库
206+
- 编译并生成 `PaddleLite+Android NNAPI` for armv8 and armv7 的部署库
207207

208208
- For armv8
209209
- tiny_publish 编译方式
@@ -259,4 +259,4 @@ Paddle Lite 已支持 Android NN API 的预测部署。
259259

260260
## 其它说明
261261

262-
- 不同 SoC 芯片对 Android NN API 的支持差异较大,目前移动端芯片支持较好,边缘端、车载等需要根据具体芯片情况确认。
262+
- 不同 SoC 芯片对 Android NNAPI 的支持差异较大,目前移动端芯片支持较好,边缘端、车载等需要根据具体芯片情况确认。

docs/demo_guides/mediatek_apu.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 联发科 APU 部署示例
22

33
Paddle Lite 已支持 MediaTek APU 的预测部署。
4-
其接入原理是与之前华为 Kirin NPU 类似,即加载并分析 Paddle 模型,将 Paddle 算子转成 MTK 的 Neuron adapter API(类似 Android NN API )进行网络构建,在线生成并执行模型。
4+
其接入原理是与之前华为 Kirin NPU 类似,即加载并分析 Paddle 模型,将 Paddle 算子转成 MTK 的 Neuron adapter API(类似 Android NNAPI )进行网络构建,在线生成并执行模型。
55

66
## 支持现状
77

docs/performance/benchmark.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@
142142
## 芯原 TIM-VX 的性能数据
143143
请参考 [Paddle Lite 使用芯原 TIM-VX 预测部署](../demo_guides/verisilicon_timvx)的最新性能数据
144144

145-
## Android NN API 的性能数据
146-
请参考 [Paddle Lite 使用 Android NN API 预测部署](../demo_guides/android_nnapi)的最新性能数据
145+
## Android NNAPI 的性能数据
146+
请参考 [Paddle Lite 使用 Android NNAPI 预测部署](../demo_guides/android_nnapi)的最新性能数据
147147

148148
## 联发科 APU 的性能数据
149149
请参考 [Paddle Lite 使用联发科 APU 预测部署](../demo_guides/mediatek_apu)的最新性能数据

docs/quick_start/support_hardware.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,15 @@ Paddle Lite 支持英特尔 OpenVINO 预测部署
145145

146146
- [Paddle Lite 使用英特尔 OpenVINO 预测部署](../demo_guides/intel_openvino)
147147

148+
## Android NNAPI
149+
150+
Paddle Lite 支持 Android NNAPI,支持列表如下:
151+
- 支持设备:Android 8.1(Oreo) 及以上的终端设备(Android SDK version 需在 27 及以上)
152+
153+
### Android NNAPI 环境准备及示例程序
154+
155+
- [Paddle Lite 使用 Android NNAPI 预测部署](../demo_guides/android_nnapi)
156+
148157
## 联发科 (MediaTek) APU
149158

150159
Paddle Lite 支持 联发科 (MediaTek) APU,支持列表如下:
@@ -155,6 +164,15 @@ Paddle Lite 支持 联发科 (MediaTek) APU,支持列表如下:
155164

156165
- [Paddle Lite 使用联发科 APU 预测部署](../demo_guides/mediatek_apu)
157166

167+
## 芯原 TIM-VX
168+
169+
Paddle Lite 支持 芯原 TIM-VX,支持列表如下:
170+
- 支持芯片:搭载了芯原 NPU 的 SoC,驱动版本需为 6.4.4.3
171+
172+
### 芯原 TIM-VX 环境准备及示例程序
173+
174+
- [Paddle Lite 使用 芯原 TIM-VX 预测部署](../demo_guides/verisilicon_timvx)
175+
158176
## 晶晨(Amlogic)NPU
159177

160178
Paddle Lite 支持 晶晨(Amlogic)NPU, 支持列表如下:

docs/quick_start/support_operation_list.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Host 端 Kernel 是算子在任意 CPU 上纯 C/C++ 的具体实现,具有可
1010

1111
以 ARM CPU 为例,如果模型中某个算子没有 ARM 端 Kernel,但是有 Host 端 Kernel,那么模型优化阶段该算子会选择 Host 端 Kernel,该模型还是可以顺利部署。
1212

13-
| OP_name| ARM | OpenCL | Metal | 昆仑芯XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | 芯原TIM-VX | Android NN API| 英特尔OpenVINO | 英伟达TensorRT |
13+
| OP_name| ARM | OpenCL | Metal | 昆仑芯XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | 芯原TIM-VX | Android NNAPI| 英特尔OpenVINO | 英伟达TensorRT |
1414
|-:|-| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -|
1515
| affine_channel|Y| | | | | | | | | | | | | | | | | | |
1616
| affine_grid|Y| | | | | | | | | | | | | | | | | | |
@@ -110,7 +110,7 @@ Host 端 Kernel 是算子在任意 CPU 上纯 C/C++ 的具体实现,具有可
110110
加上附加算子共计 278 个,需要在编译时打开 `--with_extra=ON` 开关才会编译,具体请参考[参数详情](../source_compile/compile_options)
111111

112112

113-
| OP_name| ARM | OpenCL | Metal | 昆仑芯XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | 芯原TIM-VX | Android NN API | 英特尔OpenVINO | 英伟达TensorRT |
113+
| OP_name| ARM | OpenCL | Metal | 昆仑芯XPU | Host | X86 | 比特大陆 | 英特尔FPGA | 寒武纪mlu | 华为昇腾NPU | 联发科APU | 瑞芯微NPU | 华为麒麟NPU | 颖脉NNA | 晶晨NPU | 芯原TIM-VX | Android NNAPI | 英特尔OpenVINO | 英伟达TensorRT |
114114
|-:|-| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -| -|
115115
| abs|Y|Y| |Y|Y| | | | |Y| | |Y| | | | | | |
116116
| acos| |Y| | | | | | | | | | | | | | | | | |

docs/source_compile/include/multi_device_support/nnadapter_support_android_nnapi.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
NNAdapter 支持 Android NN API
1+
NNAdapter 支持 Android NNAPI
22
^^^^^^^^^^^^^^^^^^^^^^^^
33

44
.. list-table::
@@ -8,7 +8,7 @@ NNAdapter 支持 Android NN API
88
- 可选范围
99
- 默认值
1010
* - nnadapter_with_android_nnapi
11-
- 是否编译 Android NN API 的 NNAdapter HAL 库
11+
- 是否编译 Android NNAPI 的 NNAdapter HAL 库
1212
- OFF / ON
1313
- OFF
1414

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
NNAdapter 支持英伟达 TensorRT
2+
^^^^^^^^^^^^^^^^^^^^^^^^
3+
4+
.. list-table::
5+
6+
* - 参数
7+
- 说明
8+
- 可选范围
9+
- 默认值
10+
* - nnadapter_with_nvidia_tensorrt
11+
- 是否编译英伟达 TensorRT 的 NNAdapter HAL 库
12+
- OFF / ON
13+
- OFF
14+
* - nnadapter_nvidia_cuda_root
15+
- 设置 CUDA 路径
16+
- 用户自定义
17+
- 空值
18+
* - nnadapter_nvidia_tensorrt_root
19+
- 设置 Tensor 路径
20+
- 用户自定义
21+
- 空值
22+
23+
详细请参考 `英伟达 TensorRT 部署示例 <https://paddle-lite.readthedocs.io/zh/develop/demo_guides/nvidia_tensorrt.html>`_

docs/source_compile/linux_x86_compile_arm_linux.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,5 @@ Paddle Lite 仓库中 \ ``./lite/tools/build_linux.sh``\ 脚本文件用于构
200200
.. include:: include/multi_device_support/nnadapter_support_amlogic_npu.rst
201201

202202
.. include:: include/multi_device_support/nnadapter_support_verisilicon_timvx.rst
203+
204+
.. include:: include/multi_device_support/nnadapter_support_nvidia_tensorrt.rst

docs/source_compile/linux_x86_compile_linux_x86.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,3 +187,5 @@ Paddle Lite 仓库中\ ``./lite/tools/build_linux.sh``\ 脚本文件用于构建
187187
.. include:: include/multi_device_support/nnadapter_support_introduction.rst
188188

189189
.. include:: include/multi_device_support/nnadapter_support_huawei_ascend_npu.rst
190+
191+
.. include:: include/multi_device_support/nnadapter_support_nvidia_tensorrt.rst

0 commit comments

Comments
 (0)