English | 简体中文
FastDeploy 基于 Paddle Lite 后端支持在晶晨 NPU 上进行部署推理。 更多详细的信息请参考:Paddle Lite部署示例。
本文档介绍如何编译基于 Paddle Lite 的 C++ FastDeploy 交叉编译库。
相关编译选项说明如下:
编译选项 | 默认值 | 说明 | 备注 |
---|---|---|---|
ENABLE_LITE_BACKEND | OFF | 编译 A311D 部署库时需要设置为 ON | - |
WITH_TIMVX | OFF | 编译 A311D 部署库时需要设置为 ON | - |
TARGET_ABI | NONE | 编译 A311D 库时需要设置为 arm64 | - |
更多编译选项请参考FastDeploy编译选项说明
可以进入 FastDeploy/tools/timvx 目录,使用如下命令一键安装:
cd FastDeploy/tools/timvx
bash install.sh
也可以按照如下命令安装:
# 1. Install basic software
apt update
apt-get install -y --no-install-recommends \
gcc g++ git make wget python unzip
# 2. Install arm gcc toolchains
apt-get install -y --no-install-recommends \
g++-arm-linux-gnueabi gcc-arm-linux-gnueabi \
g++-arm-linux-gnueabihf gcc-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
# 3. Install cmake 3.10 or above
wget -c https://mms-res.cdn.bcebos.com/cmake-3.10.3-Linux-x86_64.tar.gz && \
tar xzf cmake-3.10.3-Linux-x86_64.tar.gz && \
mv cmake-3.10.3-Linux-x86_64 /opt/cmake-3.10 && \
ln -s /opt/cmake-3.10/bin/cmake /usr/bin/cmake && \
ln -s /opt/cmake-3.10/bin/ccmake /usr/bin/ccmake
搭建好交叉编译环境之后,编译命令如下:
# Download the latest source code
git clone https://github.com/PaddlePaddle/FastDeploy.git
cd FastDeploy
mkdir build && cd build
# CMake configuration with A311D toolchain
cmake -DCMAKE_TOOLCHAIN_FILE=./../cmake/toolchain.cmake \
-DWITH_TIMVX=ON \
-DTARGET_ABI=arm64 \
-DENABLE_FLYCV=ON \ # 是否开启 FlyCV 优化前后处理,可以选择开启
-DCMAKE_INSTALL_PREFIX=fastdeploy-timvx \
-DENABLE_VISION=ON \ # 是否编译集成视觉模型的部署模块,可选择开启
-Wno-dev ..
# Build FastDeploy A311D C++ SDK
make -j8
make install
编译完成之后,会生成 fastdeploy-timvx 目录,表示基于 Paddle Lite TIM-VX 的 FastDeploy 库编译完成。
部署前要保证晶晨 Linux Kernel NPU 驱动 galcore.so 版本及所适用的芯片型号与依赖库保持一致,在部署前,请登录开发板,并通过命令行输入以下命令查询 NPU 驱动版本,晶晨建议的驱动版本为:6.4.4.3
dmesg | grep Galcore
如果当前版本不符合上述,请用户仔细阅读以下内容,以保证底层 NPU 驱动环境正确。
有两种方式可以修改当前的 NPU 驱动版本:
wget https://paddlelite-demo.bj.bcebos.com/devices/generic/PaddleLite-generic-demo.tar.gz
tar -xf PaddleLite-generic-demo.tar.gz
使用 uname -a
查看 Linux Kernel
版本,确定为 Linux
系统 4.19.113 版本,
将 PaddleLite-generic-demo/libs/PaddleLite/linux/arm64/lib/verisilicon_timvx/viv_sdk_6_4_4_3/lib/a311d/4.9.113
路径下的 galcore.ko
上传至开发板。
登录开发板,命令行输入 sudo rmmod galcore
来卸载原始驱动,输入 sudo insmod galcore.ko
来加载传上设备的驱动。(是否需要 sudo 根据开发板实际情况,部分 adb 链接的设备请提前 adb root)。此步骤如果操作失败,请跳转至方法 2。
在开发板中输入 dmesg | grep Galcore
查询 NPU 驱动版本,确定为:6.4.4.3
根据具体的开发板型号,向开发板卖家或官网客服索要 6.4.4.3 版本 NPU 驱动对应的固件和刷机方法。
更多细节请参考:Paddle Lite准备设备环境
A311D 上部署 PaddleClas 分类模型请参考:PaddleClas 分类模型在 A311D 上的 C++ 部署示例
A311D 上部署 PPYOLOE 检测模型请参考:PPYOLOE 检测模型在 A311D 上的 C++ 部署示例
A311D 上部署 YOLOv5 检测模型请参考:YOLOv5 检测模型在 A311D 上的 C++ 部署示例
A311D 上部署 PP-LiteSeg 分割模型请参考:PP-LiteSeg 分割模型在 A311D 上的 C++ 部署示例
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。