当前位置: 首页 > news >正文

RK3568 NPU RKNN(一):概念理清

文章目录

  • 1、前言
  • 2、RKNPU
  • 3、RK3568 NUP能力
  • 4、RKNPU软件推理框架
  • 5、RKNN模型
  • 6、学习流程

1、前言

本文出现的图片均可能来自讯为视频教程的配套讲义:

链接:https://pan.baidu.com/s/1h3W0cDYDH4E2Vu_HG_qSFg 提取码:ompw

2、RKNPU

到目前为止,RKNPU已经经过了几代的发展,趋近成熟。RK3399pro和RK1808初次引入RKNPU,相比传统的 CPU和GPU,在深度学习运算能力上有比较大幅度的提升。接下来在RV1109和RV1126上使用了第二代NPU,提升了NPU的利用率。第三代NPU应用在RK3566和RK3568上,搭载全新NPU自研架构,而RK3588搭载的为第四代NPU,提高了带宽利用率,支持了多核扩展。RKNPU具体发展过程如下图所示:

RKNPU1.0和RKNPU2.0被划分为了RKNPU,而RKNPU3.0、RKNPU4.0和RKNPU5.0被划分为了RKNPU2。

3、RK3568 NUP能力

RK3568 NPU只有单核心,RK3588 NPU是3核心。

4、RKNPU软件推理框架

下图展示了RKNPU各层级之间的关系:

RKNPU应用层可以分为RKNPU动态库、RKNN API、应用程序三个部分。关于API,rk提供了Python和C两种程序接口,而动态库就是接口的具体实现。

5、RKNN模型

我们需要将常用的模型转换成RKNPU所支持的RKNN模型,才可以使用API进行后续的AI应用程序编写。关于模型之间的转换会涉及到两个工具,分别是RKNN-Toolkit2RKNN-Toolkit-Lite2

RKNN-Toolkit2:RKNN-Toolkit2是为用户提供在PC平台上进行模型转换、推理和性能评估的开发套件,用户通过该工具提供的Python接口进行相关功能的开发。(项目地址:GitHub - airockchip/rknn-toolkit2)

RKNN-Toolkit2-Lite2:是RKNN-Toolkit2的阉割版,只保留了推理功能,直接运行在板卡上。二者的区别如下所示:

之前还提到,rk提供了Python和C两种API接口。而C API依赖于RKNPU2 SDK,项目地址在:https://github.com/airockchip/rknn-toolkit2/tree/master/rknpu2。可以把RKNN-Toolkit2-Lite2RKNPU2 SDK放在一起比较,前者向上提供的是Python API接口,后者向上提供的是C API接口,但它们都是运行在板卡上的,并且RKNPU2 SDK提供的接口会更多更复杂,实现的效果更好。下图展示了二者的区别:

整个开发流程可以总结如下:

  1. 在PC机下,基于RKNN-Toolkit2提供的Python接口进行RKNN模型构建、加载、测试等验证操作。
  2. 在PC机下验证完成后,就轮到项目部署。即将RKNN-Toolkit2-Lite2或RKNPU2 SDK部署到开发板。

6、学习流程

总结关于rknn学习流程大致如下:

1、环境搭建

2、了解如何在pc端使用rknn-toolkit2

3、了解如何在板卡端使用rknn-toolkit-lite2

4、了解如何在板卡端使用rknpu2 sdk

5、项目实践

http://www.xdnf.cn/news/1308097.html

相关文章:

  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)
  • 10-verilog的EEPROM驱动-单字节读写
  • 罗技MX Anywhere 2S鼠标修复记录
  • 多机编队——(6)解决机器人跟踪过程中mpc控制转圈问题
  • AT89C52单片机介绍
  • CVE-2024-28752漏洞复现
  • mysql一启动就挂的解决
  • Javar如何用RabbitMQ订单超时处理
  • Docker部署 Neo4j Community【拒绝国内镜像拉取异常】
  • Vue组件生命周期钩子:深入理解组件的生命周期阶段
  • 论文学习24:Boundary-Sensitive Segmentation of SmallLiver Lesions
  • 服务器可以ping通,但部署的网站打不开
  • [Linux] Linux tar文档管理 系统间复制文档
  • Android 移动端 UI 设计:前端常用设计原则总结
  • 使用openssl创建自签名CA并用它签发服务器证书
  • c# WebAssembly,在网页上能运行多线程,异步,锁,原子加,减等代码吗
  • tailscale远程服务器连接局域网方案(解决境外服务器网速慢的问题)
  • OBOO鸥柏丨75寸/86平板企业办公会议触控一体机核心国产化品牌招投标参数
  • 企业运维规划及Linux介绍虚拟环境搭建
  • Jenkins Pipeline中参数化构建
  • 5 索引的操作
  • 惠普声卡驱动win10装机完成检测不到声卡
  • 每日任务day0816:小小勇者成长记之符文羊皮卷
  • ML307C 4G通信板:工业级DTU固件,多协议支持,智能配置管理
  • AI热点周报(8.10~8.16):AI界“冰火两重天“,GPT-5陷入热议,DeepSeek R2模型训练受阻?
  • c#Blazor WebAssembly在网页中多线程计算1000万次求余
  • MongoDB 聚合提速 3 招:$lookup 管道、部分索引、时间序列集合(含可复现实验与 explain 统计)
  • 完整设计 之 智能合约系统:主题约定、代理协议和智能合约 (临时命名)----PromptPilot (助手)答问之2
  • JavaEE 初阶第十九期:网络编程“通关记”(一)
  • 【Java学习】锁、线程死锁、线程安全2