0x0 Radxa Rock 3a开发板介绍

Radxa Rock 3a开发板是基于瑞芯微RK3568芯片设计的,ARM CPU采用4核Cortex-A55(Cortex-A53的继任者),主频最高可达2.0Ghz,CPU性能相当于中高端手机的小核性能。相比于RK3399, 树莓派4B这种采用了Cortex-A72大核CPU平台,RK3568的Cortex-A55这种虽然是小核CPU架构,但是由于主频高,性能不会逊色太多,在加上对于ARMV8.2的支持,原生支持半精度计算,在AI推理性能要略微强上一截。而在散热功耗控制上,RK3568由于采用了小核架构要比RK3399树莓派4B更有优势。

以下是基于NCNN推理框架运行MobileNetV2网络的速度测试基准:

min max avg
RK3568 35.75ms 36.09ms 35.88ms
RK3399 51.30ms 52.18ms 51.75ms
树莓派4B 72.26ms 73.16ms 72.62ms

RK3568在CPU的AI推理性能还是很强的!!!

其实基于RK3568的Radxa Rock 3a有个非常大的优势,就是太TM便宜的,某宝269RMB就可以入手,相比于RK3399和树莓派4B在价格上有太大优势了!!!

放一张Radxa Rock 3a的照片:

官方介绍​wiki.radxa.com/Rock3/3a

0x1 simple-rknn2傻瓜式调用rk npu

上篇讲了,Radxa Rock 3a上面搭载的那颗RK3568很强,但是不要忘了,它还有个0.8T的NPU,虽然指标算力看起来很低,但是应该也是比CPU强一些的。基于RK3568的NPU开发,是要基于瑞芯微官方提供的rknn-toolkit2以及rknpu2rknn-toolkit2主要是神经网络模型的量化及模型转换,把模型转换为.rknn的格式,rknpu2主要是提供调用NPU的API接口函数,这两个在瑞芯微的Github都有提供,下面是链接

rknpu2​github.com/rockchip-linux/rknpu2

GitHub - rockchip-linux/rknn-toolkit2​github.com/rockchip-linux/rknn-toolkit2正在上传…重新上传取消

建议大家还是要看完官方文档,在./doc目录下

那么当我们通过rknn-toolkit2工具把模型转换为.rknn的格式后,我们具体该怎么在NPU上进行推理呢?我这边就给大家造了个轮子,方便大家傻瓜式调用,就是simple-rknn2,它不光支持RK3568的NPU调用,也支持RK3588的NPU,操作系统支持Linux和Android,链接在下面:

https://github.com/dog-qiuqiu/simple-rknn2​github.com/dog-qiuqiu/simple-rknn2

基于它调用NPU,到底有多傻瓜呢,总共也就两个函数: LoadModel():加载模型 Forward()模型推理;

是不是很简洁,其实也就是基于官方rknpu2的NPU调用API接口进行二次封装,方便在大家不了解NPU调用API的情况下也能方便调用NPU进行.rknn模型的推理,降低大家NPU入门开发成本,simple-rknn2具体的使用流程可以参考GitHub上的README

0x2 NPU调用示例

那么我们基于simple-rknn2提供的MobileNetv2的demo,在Radxa Rock 3a实际运行测试一下吧,看看运行速度相比于CPU有多快。注意下Radxa Rock 3a我采用的Ubuntu20镜像(debian镜像调用rga会报glibc版本错误),下面是我烧录的系统镜像链接:

链接:

https://pan.baidu.com/s/1WWmAanwOc8-D1lFpT3zOyQ​pan.baidu.com/s/1WWmAanwOc8-D1lFpT3zOyQ

提取码: 28qc

按照下面GitHub README链接的步骤进行simple-rknn2的编译以及demo执行文件的编译

https://github.com/dog-qiuqiu/simple-rknn2#run-demo​github.com/dog-qiuqiu/simple-rknn2#run-demo

编译完成生成可执行文件后,我们实际运行跑一下:

root@rock-3a:/home/rock/npu# ./mobilenetv2 mobilenetv2_3568.rknn
Load model:mobilenetv2_3568.rknn
sdk version: 1.2.0 (9db21b35d@2022-01-14T15:16:23) driver version: 0.4.2
model input num: 1, output num: 1index=0, name=data, n_dims=4, dims=[1, 224, 224, 3], n_elems=150528, size=602112, fmt=NHWC, type=FP32, qnt_type=AFFINE, zp=-13, scale=0.018317index=0, name=prob, n_dims=4, dims=[1, 1000, 1, 1], n_elems=1000, size=4000, fmt=NCHW, type=FP32, qnt_type=AFFINE, zp=0, scale=1.000000
model is NHWC input fmt
model input height=224, width=224, channel=3
Rga built version:1.04 788c430+2021-02-24 12:17:35
Forward time:19.2299995422 ms
=========================
index:0 c:1000 h:1 w:1
category:155 score:0.991211
=========================

运行耗时19.22ms,相比于CPU的35ms还是要快很多的,哈哈,真香!!!(最后还是想说太TM便宜啊)

Radxa Rock 3a NPU调用指南相关推荐

  1. RK3188(radxa rock )recovery模式升级

    如果力气过大,radxa rock 的recovery按键容易折断. 这个时候刷机是个问题.不过根据rockchip提供的文档,我们可以进入recovery模式 通过ota升级. 你可以自己编译固件也 ...

  2. linux刷rockchip工具,[Radxa Rock]如何刷机到NAND闪存

    这个页面描述怎么往Radxa Rock的NAND flash上装系统,即大家喜闻乐见的刷机. 你可以选择完全刷机(就是刷 update.img格式的固件)或者只刷特定的某个 分区. 你可以从radxa ...

  3. Python快速实现 CMD 命令调用指南

    Python快速实现 CMD 命令调用指南 在 Python 中,我们可以很方便地通过调用 CMD 命令来执行系统操作.本文将为您介绍如何使用 Python 调用 CMD 命令,并提供相关代码和详细描 ...

  4. 腾讯AI开放平台的接口调用指南

    最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的.只需要用QQ号登录即可.这么好的东西,作为一个程序员,当然要试试了! 从上图可以看出腾讯AI开放平台提供的人工智能服务主 ...

  5. [常用工具] dlib编译调用指南

    dlib是一个C++工具包(dLIB中也有Python接口,但是主要编程语言为C++),包含绝大多数常用的机器学习算法,许多图像处理算法和深度学习算法,被工业界和学术界广泛应用于机器人.嵌入式设备.移 ...

  6. 薄荷图床API调用指南

    接口地址:会员专用网址/api/upload/ 返回格式:JSON 请求方式:POST 默认QPS:30+ 官网地址:薄荷图床官网 首页 -图床外链生成器-亚马逊图片上传-无限流量-全球加速-无限数量 ...

  7. java directui_win32 DirectUI控件开发与调用指南

    相较于win32/mfc,directui(win32)更加轻量化,在开发方式上更加现代化,使得其在c++应用方面成为主流,官方中提到了可以开发控件(插件),也就是说新的库可以不写在dui里,而独立出 ...

  8. Rock 5 RK3588 SBC初次摸索

    RADXA Rock 5(基于RK3588)的初次摸索 硬件平台简述 系统安装选择 几个系统的介绍 系统的安装方式 配件方面 硬件平台简述 RK3588是瑞芯微发布的一款8核(4核大+4核小)ARM架 ...

  9. 第三方网站应用微信登录开发指南

    微信开放平台网址 网站应用微信登录开发指南 准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统. 在进行微信OAuth2.在进行微信OAuth2.0授权登录 ...

最新文章

  1. Metasploit中aggregator插件无法使用
  2. oracle之 变更OS时间对数据库的影响
  3. java 查看变量类型
  4. python 统计使用技巧
  5. Spring MVC:资源
  6. RS485光纤中继器有哪些优缺点?
  7. java常用class类_java常用类
  8. C语言之结构体(2)
  9. 推荐系列:2008年第05期 总7期
  10. 【Web】关于Session过期/失效的理解
  11. MODBUS调试工具 C#源码 包含MODBUS主站调试工具和MODBUS从站调试工具
  12. c语言做线性代数第六版答案,编程与线性代数
  13. python执行bat文件_让Python文件也可以当bat文件运行
  14. 2018笔试题——求一元一次方程的解
  15. 桃子CCD视觉高速喷射点胶机,用它你就会爱上它
  16. 基于asp.net714零食销售海米跨境电子商务商城
  17. python数字转换拼音程序_课内资源 - 基于Python的拼音汉字转换程序
  18. EMW3162 AT固件的使用【1】
  19. 「开发者说」多系统集成开发-企业自有系统快速上钉钉
  20. 什么是Base-64编码

热门文章

  1. TestNG监听器实现失败自动截图、重跑、自定义html结果文件功能
  2. 传奇一键端服务器维护,烈焰炫彩传奇最终版一键服务端+启动教程+GM工具
  3. 简述卡西欧5800p计算机,卡西欧5800p计算器所有解释
  4. 苹果x电池容量_关于苹果18W PD快充你想知道的,全都在这里了
  5. 二本院校学弟大二开始实习,大三收割阿里、腾讯实习offer
  6. 图像物体分类与检测算法综述
  7. C语言实验上机报告第三版,c语言上机报告[实验三].doc
  8. Unity3D网页插件
  9. eclipse安装说明
  10. python爬虫和医学数据_Python爬虫入门教程 24-100 微医挂号网医生数据抓取