使用边缘设备进行算法落地时,通常要考虑模型推理速度,NVIDA系列平台可以使用TensorRT和CUDA加速,瑞芯微RK3588的板子上都是Arm的手机GPU,虽然没有类似CUDA的加速计算方式,但是提供了NPU进行加速推理,本文说明了如何使用瑞芯微RK3588的NPU进行模型转换和推理
一、简介
RK3588
内置NPU
模块, 处理性能最高可达6TOPS
。使用该NPU需要下载RKNN SDK,RKNN SDK为带有 NPU 的RK3588S/RK3588 芯片平台提供编程接口,能够帮助用户部署使用 RKNN-Toolkit2导出RKNN模型,加速AI应用的落地。
RKNN-Toolkit2
是为用户提供在 PC、 Rockchip NPU 平台上进行模型转换、推理和性能评估的开发套件,用户通过该工具提供的Python接口可以便捷地完成以下功能:
🏆模型转换:支持 Caffe、TensorFlow、TensorFlow Lite、ONNX、DarkNet、PyTorch 等模型转为 RKNN 模型,并支持 RKNN 模型导入导出,RKNN 模型能够在Rockchip NPU 平台上加载使用。
🎽量化功能:支持将浮点模型量化为定点模型,目前支持的量化方法为非对称量化,并支持 混合量化功能 。
🎯模型推理:能够在 PC上模拟Rockchip NPU运行RKNN模型并获取推理结果;或将RKNN模型分发到指定的NPU设备上进行推理并获取推理结果。
🏋性能和内存评估:将 RKNN 模型分发到指定NPU设备上运行,以评估模型在实际设备上运行时的性能和内存占用情况。
🎼量化精度分析:该功能将给出模型量化前后每一层推理结果与浮点模型推理结果的余弦距离,以便于分析量化误差是如何出现的,为提高量化模型的精度提供思路。
二、准备工作
2.1 适用芯片
RKNN-Toolkit2当前版本所支持芯片的型号如下:
- RV1103
- RV1103B
- RV1106
- RV1106B
- RK2118
- RK3562
- RK3566系列
- RK3568系列
- RK3576系列
RK3588系列
2.2 系统依赖说明
使用RKNN-Toolkit2时需要满足以下运行环境要求:
ARM64版本运行环境要求,ARM64版本仅支持PyTorch和ONNX框架,其他框架暂时不支持:
RKNN-Toolkit2和各深度学习框架的版本对应关系如下:
三、创建环境
因为尝试将yolo11
的onnx
模型转成RKNN-Toolkit2
的rknn
模型,根据版本对应关系,ONNX版本越高支持的算子种类越多,所以选择onnx==1.17.0
对应的RKNN-Tollkit2==2.3.0
版本。
3.1 下载RKNN相关库
建议新建一个目录用来存放RKNN仓库,例如新建一个名称为rknn的文件夹,并将RKNN-Toolkit2
和RKNN Model Zoo
仓库存放至该目录下,参考命令如下:
# 新建 Projects 文件夹
mkdir rknn
# 进入该目录
cd rknn
# 下载 RKNN-Toolkit2 仓库
git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1
# 下载 RKNN Model Zoo 仓库
git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1