本帖最后由 hollyedward 于 2024-5-7 01:07 编辑
RKNN Toolkit2 是由瑞芯微电子 (Rockchip) 开发的一套用于深度学习模型优化和推理的工具。它主要面向在瑞芯微SoC上进行AI应用开发,但也可以用于PC平台进行模型的转换、量化、推理等操作。
Rockchip RK3566/RK3568 系列, RK3588 系列, K3562 系列, RV1103/RV1106 系列芯片搭载神经网络处理器 NPU, 利用 RKNN 可以帮助用户快速部署 AI 模型到 Rockchip 芯片上使用 NPU 硬件加速模型推理。 为了使用 RKNPU,用户首先需要在 x86 计算机上使用 RKNN-Toolkit2 工具,将训练好的模型转换为 RKNN 格式的模型,然后在开发板上使用 RKNN C API 或 Python API进行推断。
所需工具:
- RKNN-Toolkit2 是一个软件开发工具包,供用户在 PC 和 Rockchip NPU 平台上执行模型转换、推断和性能评估。
- RKNN-Toolkit-Lite2 为 Rockchip NPU 平台提供了 Python 编程接口,帮助用户部署 RKNN 模型并加速实施AI应用。
- RKNN Runtime 为 Rockchip NPU 平台提供了 C/C++ 编程接口,帮助用户部署 RKNN 模型并加速实施AI应用。
- RKNPU 内核驱动负责与 NPU 硬件交互。
rknn 软件框图
环境搭建
查看系统版本
cat /proc/version
ubuntu版本为22.04,对应的环境python版本为3.10
安装miniconda
创建虚拟环境
# 下载 RKNN-Toolkit2 仓库
git clone https://github.com/airockchip/rknn-toolkit2.git -b v1.6.0
安装项目需要的依赖文件,使用python 3.10对应的配置文件
pip install -r ./rknn-toolkit2/packages/requirements_cp310-1.6.0.txt
需要下载的依赖
安装 rknn toolkit2
pip install ./rknn-toolkit2/packages/rknn_toolkit2-1.6.0+81f21f4d-cp38-cp38-linux_x86_64.whl
遇到的问题待解决:在服务器的ubuntu系统(版本22.04)上不能正常使用rknn-toolkit2
换版本都试过了没有用
py38+rknn1.6.0
py39+rknn1.6.0
py310+rknn1.6.0
py310+rknn2.0.0
以上均报错Illegal instruction (core dumped)
这是系统原因吗?
这里执行自带的yolov5 example也没有用
python test.py
I rknn-toolkit2 version: 2.0.0b0+9bab5682
--> Config model
done
--> Loading model
I It is recommended onnx opset 19, but your onnx model opset is 12!
I Model converted from pytorch, 'opset_version' should be set 19 in torch.onnx.export for successful convert!
I Loading : 0%| | 0/125 [00:00<?, ?it/I Loading : 100%|██████████████████████████████████████████████| 125/125 [00:00<00:00, 11880.53it/s]
done
--> Building model
D base_optimize ...
D base_optimize done.
D
D fold_constant ...
D fold_constant done.
D
D correct_ops ...
D correct_ops done.
D
D fuse_ops ...
D fuse_ops done.
D
D sparse_weight ...
Illegal instruction (core dumped)