rknn-toolkit2是开发rk3588的npu时使用的sdk,github地址是:https://hub.nuaa.cf/airockchip/rknn-toolkit2.git。
git clone下载后,在doc文件内有相关的pdf使用文档,比较重要的是这份文档:02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf。
一、 rk3588npu驱动升级
上面这份文档的2.2节设备NPU环境准备中,会更新RKNN Server和 RKNPU2 Runtime 库,操作是通过adb指令,不方便,可以直接把rknn-toolkit2下载到rk3588里面,然后直接cp指令拷贝升级。
#升级rknn server
sudo cp rknpu2/runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/rknn_server /usr/bin/rknn_server
sudo cp rknpu2/runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/start_rknn.sh /usr/bin/start_rknn.sh
sudo cp rknpu2/runtime/RK3588/Linux/rknn_server/aarch64/usr/bin/restart_rknn.sh /usr/bin/restart_rknn.sh
#升级 RKNPU2 Runtime 库
cp rknpu2/runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so /usr/lib/librknnrt.so
#2.0版本没有librknn_api.so,创建一个软连接到librknnrt.so
sudo ln -s /usr/lib/librknnrt.so /usr/lib/librknn_api.so
npu的driver可以不用升级,我们用的是0.8.2版本,实测发现除了动态shape功能不支持外,暂时没发现其他问题,可以正常跑通yolov5、yolov8。
二、 运行rknn_model_zoo中的demo
rknn_model_zoo中的demo模型连板运行时,需要先在rk3588中启动rknn_server
#在rk3588上执行
start_rknn.sh
rk3588的adb支持网络模式
#在x86主机上执行
adb connect 192.168.0.xxx:5555
#192.168.0.xxx需要换成实际的rk3588地址