rk3588(香橙派5pro)使用npu推理

参考文档

从modelzoo来看,使用纯cnn的int8模式,更容易部署模型

  • https://blog.csdn.net/zichuanning520/article/details/125724571
  • https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit2/examples/pytorch/resnet18
  • https://github.com/airockchip/rknn_model_zoo?tab=readme-ov-file
  • 香橙派5pro 用户手册 3.40 npu使用方法

关于驱动仓库

https://github.com/airockchip/rknn-toolkit2

  • rknpu2: 驱动所在位置,提供外部cpp接口
  • rknn-toolkit2: python接口,x86 adb连接板子调试(跟手机类似)
  • rknn-toolkit-lite2: python接口, 直接在板子上跑代码,需要有编译好的rknn模型

resnet18 rknn-toolkit2环境跑通

1. 示例代码选择

  • https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit2/examples/pytorch/resnet18
  • 官方的这个demo还挺完善的,我们只要把他环境配齐就好了

2. x86配置

  1. 克隆整个仓库,安装位于rknn-toolkit2-master/rknn-toolkit2/packages/rknn_toolkit2-2.0.0b0+9bab5682-cp39-cp39-linux_x86_64.whl
    • 这个是个x86调试npu的一个轮子,包含模拟器
  2. 手动安装其他依赖即可,由于香橙派主要使用百度源,所以推荐https://mirror.baidu.com/pypi/simple, 清华源很多rknn的依赖包装不上

3. 板端配置

主要是更新驱动

  1. rknpu2/runtime/Linux/librknn_api/aarch64, 替换/usr/lib的同名驱动
  2. rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin/,三个内容都使用777
  3. rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin里使用./rknn_server启动usb服务器

4. 跑通模拟器代码

  1. 修改test.py里的target_platform为rk3588
  2. 然后在x86端直接运行是示例代码的test.py即可

5. 实机跑代码

  1. 完成步骤4,然后准备一根usb-typec的线, c口插入香橙派, usb是x86主机

  2. 使用adb devices -l查看链接情况,注意连不上的话先拔掉线,板子重启一般就好了

    • 在这里插入图片描述
  3. 在x86的test.py里修改ret = rknn.init_runtime()这一行

  4. ret = rknn.init_runtime(target='rk3588', device_id='adb的链接码)

  5. 执行test.py即可

执行效果

  • resnet18的半精度0.04s,从官方model zoo来看部署使用针对边缘优化的模型结构可以在此npu上有比较好的运行结果
    在这里插入图片描述
  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值