1
1
# 昆仑芯 XTCL 部署示例
2
2
3
3
Paddle Lite 已支持昆仑芯系列芯片及板卡 在 X86 和 ARM 服务器上进行预测部署。 目前支持子图接入方式,其接入原理是在线分析 Paddle 模型,将 Paddle 算子先转为统一的 NNAdapter 标准算子,再通过 XTCL 组网 API 进行网络构建,在线生成并执行模型。
4
+
4
5
XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实践而提供的图编译引擎库,可提供基于昆仑芯硬件相关的图层分析框架和加速优化能力。
5
6
6
7
## 支持现状
7
8
8
9
### 已支持的芯片
9
10
10
- - 昆仑芯1代AI芯片CK10/ CK20
11
- - 昆仑芯2代AI芯片CR20
11
+ - 昆仑芯1代 AI 芯片 CK10 / CK20
12
+ - 昆仑芯2代 AI 芯片 CR20
12
13
13
- ### 已支持的AI加速卡
14
+ ### 已支持的 AI 加速卡
14
15
15
- - 昆仑芯 AI 加速卡 K100/ K200
16
+ - 昆仑芯 AI 加速卡 K100 / K200
16
17
- 昆仑芯 AI 加速卡 R200
17
18
18
19
### 已验证支持的 Paddle 模型
@@ -73,14 +74,15 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
73
74
74
75
- [ 开源模型支持列表] ( ../quick_start/support_model_list.md )
75
76
76
- ** Note: 以上全部模型目前只在R200上测试验证通过,部分模型支持K100/ K200.**
77
+ ** Note: 以上全部模型目前只在 R200 上测试验证通过,部分模型支持 K100 / K200.**
77
78
78
79
79
80
80
81
#### 性能
81
82
82
83
性能仅供参考,以实际运行效果为准。
83
- | 模型 | Intel CPU性能 (ms) | x86 + R200 性能 (ms) |
84
+
85
+ | 模型 | Intel CPU 性能 (ms) | x86 + R200 性能 (ms) |
84
86
| ------------------------------------------------------------ | ------------------ | -------------------------- |
85
87
| [ AlexNet] ( https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleClas/AlexNet.tgz ) | 37.777400 | 0.689400 |
86
88
| [ DenseNet121] ( https://paddlelite-demo.bj.bcebos.com/NNAdapter/models/PaddleClas/DenseNet121.tgz ) | 76.767599 | 4.015600 |
@@ -121,13 +123,13 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
121
123
122
124
## 参考示例演示
123
125
124
- ### 测试设备( 昆仑芯AI加速卡R200 )
126
+ ### 测试设备(昆仑芯 AI 加速卡 R200 )
125
127
126
- <img src =" https://baidu-kunlun-public.su.bcebos.com/paddle_lite/R200.jpg " alt =" kunlunxin_xtcl " style =" zoom : 33 % ;" />
128
+ <img src =" https://baidu-kunlun-public.su.bcebos.com/paddle_lite/R200.jpg " alt =" kunlunxin_xtcl " style =" zoom : 100 % ;" />
127
129
128
130
### 准备设备环境
129
131
130
- - 昆仑芯AI加速卡R200 [ 产品手册] ( https://baidu-kunlun-public.su.bcebos.com/paddle_lite/R200%20%E4%BA%A7%E5%93%81%E6%89%8B%E5%86%8C%E5%A4%96%E9%83%A8%E7%89%88_0923.pdf ) ;
132
+ - 昆仑芯 AI 加速卡 R200 [ 产品手册] ( https://baidu-kunlun-public.su.bcebos.com/paddle_lite/R200%20%E4%BA%A7%E5%93%81%E6%89%8B%E5%86%8C%E5%A4%96%E9%83%A8%E7%89%88_0923.pdf ) ;
131
133
- R200 为全高全长 PCI-E 卡,要求使用 PCIe4.0 x16 插槽,且需要单独的 8 针供电线进行供电;
132
134
- 安装 [ R200 XRE 驱动] ( https://baidu-kunlun-public.su.bcebos.com/paddle_lite/XRE%20%E5%AE%89%E8%A3%85%E6%89%8B%E5%86%8C_v1.0.pdf ) ,目前支持 Ubuntu 和 CentOS 系统,由于驱动依赖 Linux kernel 版本,请正确安装对应版本的驱动安装包。
133
135
@@ -179,10 +181,10 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
179
181
- libiomp5.so # Intel OpenMP 库
180
182
- libmklml_intel.so # Intel MKL 库
181
183
- libmklml_gnu.so # GNU MKL 库
182
- - kunlunxin_xtcl # 昆仑芯 XTCL 库、NNAdapter 运行时库、device HAL 库
184
+ - kunlunxin_xtcl # 昆仑芯 XTCL 库、NNAdapter 运行时库、device HAL 库
183
185
- libnnadapter.so # NNAdapter 运行时库
184
186
- libkunlunxin_xtcl.so # NNAdapter device HAL 库
185
- - libxtcl.so # 昆仑芯 XTCL 库
187
+ - libxtcl.so # 昆仑芯 XTCL 库
186
188
- libpaddle_full_api_shared.so # 预编译 Paddle Lite full api 库
187
189
- libpaddle_light_api_shared.so # 预编译 Paddle Lite light api 库
188
190
- arm64
@@ -236,7 +238,7 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
236
238
$ ./build.sh linux arm64
237
239
```
238
240
239
- ### 更新支持昆仑芯XTCL的Paddle Lite库
241
+ ### 更新支持昆仑芯 XTCL 的 Paddle Lite 库
240
242
241
243
- 下载 Paddle Lite 源码
242
244
``` shell
@@ -245,11 +247,11 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
245
247
$ git checkout < release-version-tag>
246
248
```
247
249
248
- - 编译并生成 PaddleLite+ NNAdapter+ kunlunxin_xtcl for amd64 and arm64 的部署库
250
+ - 编译并生成 PaddleLite + NNAdapter + kunlunxin_xtcl for amd64 and arm64 的部署库
249
251
- For amd64
250
252
- full_publish 编译
251
253
```shell
252
- # 默认自动从云上下载kunlunxin_xtcl_sdk ,如需指定,请使用参数--nnadapter_kunlunxin_xtcl_sdk_root
254
+ # 默认自动从云上下载 kunlunxin_xtcl_sdk ,如需指定,请使用参数--nnadapter_kunlunxin_xtcl_sdk_root
253
255
$ ./lite/tools/build_linux.sh --arch=x86 --with_extra=ON --with_log=ON --with_exception=ON --with_nnadapter=ON --nnadapter_with_kunlunxin_xtcl=ON full_publish
254
256
```
255
257
@@ -273,7 +275,7 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
273
275
- full_publish 编译
274
276
```shell
275
277
# arm 环境下需要设置环境变量 CC 和 CXX,分别指定 C 编译器和 C++ 编译器的路径
276
- # 默认自动从云上下载kunlunxin_xtcl_sdk ,如需指定,请使用参数--nnadapter_kunlunxin_xtcl_sdk_root
278
+ # 默认自动从云上下载 kunlunxin_xtcl_sdk ,如需指定,请使用参数--nnadapter_kunlunxin_xtcl_sdk_root
277
279
$ export CC=<path_to_your_c_compiler>
278
280
$ export CXX=<path_to_your_c++_compiler>
279
281
$ ./lite/tools/build_linux.sh --arch=armv8 --with_extra=ON --with_log=ON --with_exception=ON --with_nnadapter=ON --nnadapter_with_kunlunxin_xtcl=ON full_publish
@@ -296,20 +298,21 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
296
298
```
297
299
298
300
## 高级特性
299
- 本节主要说明在不同的昆仑芯AI加速卡上如何设置不同的参数。以下列出了paddle lite下支持的两种高级参数 。
301
+ 本节主要说明在不同的昆仑芯AI加速卡上如何设置不同的参数。以下列出了 Paddle Lite 下支持的两种高级参数 。
300
302
301
303
- 高级参数
302
304
303
305
- KUNLUNXIN_XTCL_SELECTED_DEVICE_IDS
304
- 指定昆仑芯产品的 ID号。例如KUNLUNXIN_XTCL_SELECTED_DEVICE_IDS=0或KUNLUNXIN_XTCL_SELECTED_DEVICE_IDS=0,1,2,3
306
+
307
+ 指定昆仑芯产品的 ID 号。例如 KUNLUNXIN_XTCL_SELECTED_DEVICE_IDS=0 或 KUNLUNXIN_XTCL_SELECTED_DEVICE_IDS=0,1,2,3
305
308
306
309
- KUNLUNXIN_XTCL_DEVICE_TARGET
307
- 指定昆仑芯的不同类型的AI加速卡。例如KUNLUNXIN_XTCL_DEVICE_TARGET=xpu -libs=xdnn -device-type=xpu1或者KUNLUNXIN_XTCL_DEVICE_TARGET=xpu -libs=xdnn -device-type=xpu2
308
- XPU 代指昆仑芯自主研发的芯片硬件架构,XPU1 用在昆仑芯 1 代系列产品,包括K100和K200 ;XPU2 用在昆仑芯 2 代系列产品,包括R200等 。
310
+
311
+ 指定昆仑芯的不同类型的 AI 加速卡。例如 KUNLUNXIN_XTCL_DEVICE_TARGET=xpu -libs=xdnn -device-type=xpu1 或者 KUNLUNXIN_XTCL_DEVICE_TARGET=xpu -libs=xdnn -device-type=xpu2。 XPU 代指昆仑芯自主研发的芯片硬件架构,XPU1 用在昆仑芯 1 代系列产品,包括 K100 和 K200 ;XPU2 用在昆仑芯 2 代系列产品,包括 R200 等 。
309
312
310
313
311
314
- 使用方式
312
- - c++代码示例
315
+ - c++ 代码示例
313
316
``` c++
314
317
// Run inference by using light api with MobileConfig
315
318
paddle::lite_api::MobileConfig mobile_config;
@@ -318,7 +321,7 @@ XPU Tensor Compilation Library (XTCL),即昆仑芯针对机器学习领域实
318
321
mobile_config.set_nnadapter_context_properties(nnadapter_context_properties);
319
322
```
320
323
321
- - shell脚本示例
324
+ - shell 脚本示例
322
325
``` shell
323
326
export KUNLUNXIN_XTCL_SELECTED_DEVICE_IDS=0
324
327
export KUNLUNXIN_XTCL_DEVICE_TARGET=" xpu -libs=xdnn -device-type=xpu1"
0 commit comments