PaddleLite使用比特大陆硬件(bm)编译和预测

Paddle-Lite 目前支持在Docker环境编译bm预测库。

1. 编译

1.1 下载代码

git clone https://github.com/AnBaolei1984/Paddle-Lite.git

需要checkout到baolei/bitmain分支

1.2 启动Docker

a) 准备Docker镜像

参考paddlelite文档的准备Docker镜像部分,推荐方式二,本地源码Docker镜像
https://paddle-lite.readthedocs.io/zh/latest/source_compile/compile_env.html#docker

b) 在Paddle-Lite的上一级目录执行下面的命令。注意要允许docker container访问bm设备(–device=/dev/bm-sophon0:/dev/bm-sophon0等)。

下面是sc5+三芯卡的docker启动命令:

docker run -it \
--name paddlelite_docker \
-v $PWD/Paddle-Lite:/Paddle-Lite \
--device=/dev/bm-sophon0:/dev/bm-sophon0 \
--device=/dev/bm-sophon1:/dev/bm-sophon1 \
--device=/dev/bm-sophon2:/dev/bm-sophon2 \
--device=/dev/bmdev-ctl:/dev/bmdev-ctl \
--net=host \
paddlepaddle/paddle-lite /bin/bash

如果只是编译转换模型的库,可以不用映射–device。

1.3 源码编译

1)cd /Paddle-Lite

2)设置编译线程数目

export LITE_BUILD_THRLITE_BUILD_THREADSEADS=4

3)编译

编译选项

a) target_name (默认BM1682)

如果使用的是比特大陆BM1682系列的硬件(SC3/SE3),那么target_name设为BM1682

如果使用的是比特大陆BM1684系列的硬件(SC5/SE5/SM5),那么target_name设为BM1684

b) save_bmodel (默认OFF)

如果在盒子(SE3/SE5)或模组(SM5)上开发,保存转换后的bmodel。需设成ON。

c) dynamic (默认OFF)

选择动态编译(batch可变,但性能会比静态编译差)或静态编译

d) save_umodel (默认OFF)

如果在BM1684系列芯片上做int8量化,保存转换的umodel。需设成ON。

编译命令示例:

./lite/tools/build_bm.sh --target_name=BM1684 --test=ON --save_bmodel=ON

2. SC5/SC5+直接在线推理预测

我们提供运行分类网络的示例(/PaddleLite/lite/api/test_classify_lite_bm.cc)。

cd build.lite.bm/lite/api

运行命令:

./test_classify_lite_bm --model_dir /Paddle-Lite/models/resnet50 --input_img_txt_path /Paddle-Lite/img.txt --warmup 1 --repeats 10 --im_width 224 --im_height 224 

3. 转换bmodel或umodel

请参考 https://github.com/AnBaolei1984/Paddle2BMmodel

Paddle2BMmodel中使用的inference_lite_lib是通过编译Paddle-Lite得到的。编译后生成在Paddle-Lite/build.lite.bm/inference_lite_lib目录。

4. 注意事项

paddle的模型有__model__和model+params两种形式。

a) 如果是__model__,lite/api/test_classify_lite_bm.cc 第40行写为

predictor.Build(FLAGS_model_dir, "", "", valid_places, passes);

b) 如果是model+params,写为

predictor.Build(FLAGS_model_dir, FLAGS_model_dir+"/model", FLAGS_model_dir+"/params", valid_places, passes);

猜你喜欢

转载自blog.csdn.net/santanan/article/details/112007330
今日推荐