Skip to content

Latest commit

 

History

History
executable file
·
121 lines (94 loc) · 5.5 KB

a311d.md

File metadata and controls

executable file
·
121 lines (94 loc) · 5.5 KB

English | 简体中文

晶晨 A311D 部署环境编译安装

导航目录

简介以及编译选项

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编译选项说明

交叉编译环境搭建

开发机环境需求

  • os:Ubuntu == 16.04
  • cmake: version >= 3.10.0

环境搭建

可以进入 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

基于 Paddle Lite 的 FastDeploy 交叉编译库编译

搭建好交叉编译环境之后,编译命令如下:

# 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 驱动版本:

  1. 手动替换 NPU 驱动版本。(推荐)
  2. 刷机,刷取 NPU 驱动版本符合要求的固件。

手动替换 NPU 驱动版本

  1. 使用如下命令下载解压 Paddle Lite demo,其中提供了现成的驱动文件
wget https://paddlelite-demo.bj.bcebos.com/devices/generic/PaddleLite-generic-demo.tar.gz
tar -xf PaddleLite-generic-demo.tar.gz
  1. 使用 uname -a 查看 Linux Kernel 版本,确定为 Linux 系统 4.19.113 版本,

  2. PaddleLite-generic-demo/libs/PaddleLite/linux/arm64/lib/verisilicon_timvx/viv_sdk_6_4_4_3/lib/a311d/4.9.113 路径下的 galcore.ko 上传至开发板。

  3. 登录开发板,命令行输入 sudo rmmod galcore 来卸载原始驱动,输入 sudo insmod galcore.ko 来加载传上设备的驱动。(是否需要 sudo 根据开发板实际情况,部分 adb 链接的设备请提前 adb root)。此步骤如果操作失败,请跳转至方法 2。

  4. 在开发板中输入 dmesg | grep Galcore 查询 NPU 驱动版本,确定为:6.4.4.3

刷机

根据具体的开发板型号,向开发板卖家或官网客服索要 6.4.4.3 版本 NPU 驱动对应的固件和刷机方法。

更多细节请参考:Paddle Lite准备设备环境

基于 FastDeploy 在 A311D 上的部署示例

  1. A311D 上部署 PaddleClas 分类模型请参考:PaddleClas 分类模型在 A311D 上的 C++ 部署示例

  2. A311D 上部署 PPYOLOE 检测模型请参考:PPYOLOE 检测模型在 A311D 上的 C++ 部署示例

  3. A311D 上部署 YOLOv5 检测模型请参考:YOLOv5 检测模型在 A311D 上的 C++ 部署示例

  4. A311D 上部署 PP-LiteSeg 分割模型请参考:PP-LiteSeg 分割模型在 A311D 上的 C++ 部署示例