Skip to content

Latest commit

 

History

History
106 lines (80 loc) · 3.43 KB

rknpu2.md

File metadata and controls

106 lines (80 loc) · 3.43 KB

English | 中文

How to Build RKNPU2 Deployment Environment

Notes

FastDeploy has initial support for RKNPU2 deployments. If you find bugs while using, please report an issue to give us feedback.

Introduction

Currently, the following backend engines on the RK platform are supported:

Backend Platform Model format supported Description
ONNX Runtime RK356X
RK3588
ONNX Compile switch is controlled by setting ENABLE_ORT_BACKEND ON or OFF(default)
RKNPU2 RK356X
RK3588
RKNN Compile switch is controlled by setting ENABLE_RKNPU2_BACKEND ON or OFF(default)

How to Build and Install C++ SDK

RKNPU2 only supports compiling on linux, the following steps are done on linux.

Update the driver and install the compiling environment

Before running the program, we need to install the latest RKNPU driver, which is currently updated to 1.4.0. To simplify the installation, here is a quick install script.

Method 1: Install via script

# Download and unzip rknpu2_device_install_1.4.0
wget https://bj.bcebos.com/fastdeploy/third_libs/rknpu2_device_install_1.4.0.zip
unzip rknpu2_device_install_1.4.0.zip

cd rknpu2_device_install_1.4.0
# For RK3588
sudo rknn_install_rk3588.sh
# For RK356X
sudo rknn_install_rk356X.sh

Method 2: Install via gitee

# Install necessary packages
sudo apt update -y
sudo apt install -y python3 
sudo apt install -y python3-dev 
sudo apt install -y python3-pip 
sudo apt install -y gcc
sudo apt install -y python3-opencv
sudo apt install -y python3-numpy
sudo apt install -y cmake

# download rknpu2
# For RK3588
git clone https://gitee.com/mirrors_rockchip-linux/rknpu2.git
sudo cp ./rknpu2/runtime/RK3588/Linux/librknn_api/aarch64/* /usr/lib
sudo cp ./rknpu2/runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/

# For RK356X
git clone https://gitee.com/mirrors_rockchip-linux/rknpu2.git
sudo cp ./rknpu2/runtime/RK356X/Linux/librknn_api/aarch64/* /usr/lib
sudo cp ./rknpu2/runtime/RK356X/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/

Compile C++ SDK

git clone https://github.com/PaddlePaddle/FastDeploy.git
cd FastDeploy
mkdir build && cd build

# Only a few key configurations are introduced here, see README.md for details.
# -DENABLE_ORT_BACKEND:     Whether to enable ONNX model, default OFF
# -DENABLE_RKNPU2_BACKEND:  Whether to enable RKNPU model, default OFF
# -RKNN2_TARGET_SOC:        Compile the SDK board model. Enter RK356X or RK3588 with case sensitive required.
cmake ..  -DENABLE_ORT_BACKEND=ON \
	      -DENABLE_RKNPU2_BACKEND=ON \
	      -DENABLE_VISION=ON \
	      -DRKNN2_TARGET_SOC=RK3588 \
          -DCMAKE_INSTALL_PREFIX=${PWD}/fastdeploy-0.0.3
make -j8
make install

Compile Python SDK

Python packages depend on wheel, please run pip install wheel before compiling.

git clone https://github.com/PaddlePaddle/FastDeploy.git
cd FastDeploy
cd python

export ENABLE_ORT_BACKEND=ON
export ENABLE_RKNPU2_BACKEND=ON
export ENABLE_VISION=ON
export RKNN2_TARGET_SOC=RK3588
python3 setup.py build
python3 setup.py bdist_wheel

cd dist

pip3 install fastdeploy_python-0.0.0-cp39-cp39-linux_aarch64.whl

Model Deployment

Please refer to RKNPU2 Model Deployment.