基于 RK3588 的端侧异构推理加速
初步调研报告
汇报人:邹鹏
2026 年 10 月
目录
基于 RK3588 的端侧异构推理加速 · 初步调研报告
2
01
我们的任务是什么
端侧推理、RK3588 芯片,以及我们要解决的问题
02
别人已经做到哪一步
RK3588 上多核并行、CPU-NPU 协同的公开工作
03
我们打算怎么设计
三步逐步叠加的加速方案
一、我们的任务
背景:把 AI 模型放到小设备上本地运行
基于 RK3588 的端侧异构推理加速 · 初步调研报告
3
云端推理
数据传到服务器,用大显卡计算,再把结果传回来
算力强,但有网络延迟
断网就不能用,数据要离开设备
端侧推理(本项目)
直接在摄像头、机器人、车载设备上计算
响应快,不依赖网络,数据不出设备
但设备小:算力、内存、功耗都有限
所以端侧设备上一般会配一块专门算神经网络的芯片,叫 NPU(神经网络处理器)。本项目用的 RK3588 就是一款常见的国产端侧 AI 芯片。
一、我们的任务
RK3588 里有 CPU 和 NPU,但平时只用上了一小部分
基于 RK3588 的端侧异构推理加速 · 初步调研报告
4
RK3588 芯片内部(示意)
CPU:8 个核(4 大 4 小)
NPU:3 个核,合计 6 TOPS
NPU 核 0
在推理
NPU 核 1
闲着
NPU 核 2
闲着
内存:CPU 和 NPU 共用
CPU
通用处理器,什么都能算,但算神经网络比较慢
NPU
专门算神经网络的处理器,擅长卷积、矩阵乘法,又快又省电;但只支持一部分运算类型
现在的问题
通常整个模型只跑在 1 个 NPU 核上,另外 2 个 NPU 核基本闲着,CPU 也只做些读图、画框之类的杂活
一、我们的任务
任务:让 3 个 NPU 核和 CPU 一起干活,让模型跑得更快
基于 RK3588 的端侧异构推理加速 · 初步调研报告
5
1
跑起来
把训练好的模型转换成 NPU 能执行的格式,在 1 个 NPU 核上完成推理
✔ 学长已在板子上跑通
2
多核并行
同时用上 3 个 NPU 核:可以三个核一起算一张图,也可以三个核各算各的图
本次调研重点
3
CPU-NPU 协同
把模型拆开:NPU 擅长的部分交给 NPU,其余交给 CPU,两边同时工作
后续拓展方向
怎么衡量「更快」
时延(ms):处理一张图要多少毫秒,越小越好 吞吐(fps):每秒能处理多少张图,越大越好
一、我们的任务
关键概念:模型由一个个「算子」组成,要转换后才能在 NPU 上跑
基于 RK3588 的端侧异构推理加速 · 初步调研报告
6
PyTorch 模型
ONNX 文件
RKNN 文件
在 NPU 上运行
训练框架里的模型
通用模型格式,各种硬件都能读
NPU 专用格式,同时把小数换成 8 位整数(量化),更快更省
RK3588 板子上执行
什么是算子
模型计算过程中的每一个基本运算,比如卷积(Conv)、激活(Relu)、相加(Add)、矩阵乘法。一个模型就是一串算子首尾相连
NPU 只支持一部分算子,不支持的只能交给 CPU 算,这正是第 3 步要处理的问题
例:我们在电脑上导出的 ResNet18
Conv 卷积
20
Relu 激活
17
Add 相加
8
其他(池化、全连接等)
4
共 49 个算子、1170 万个参数
二、别人做到哪了
多核并行有两种用法,「每个核各算各的」效果最好
基于 RK3588 的端侧异构推理加速 · 初步调研报告
7
用法 A:三个核一起算一张图
目标:让单张图更快(降低时延)
只快了约 1.8 倍。可能的原因:三个核没有共享的高速缓存,模型又是一层接一层算的,很难拆开并行
用法 B:每个核放一份模型,各算各的图
目标:每秒处理更多张(提高吞吐)
4 组公开数据都在 2.4~2.8 倍之间,有现成的开源代码
相对「只用 1 个 NPU 核」的加速倍数(YOLOv5s 目标检测模型) 理论上限是 3 倍
只用 1 个核
× 1.0
用法 A:单张图时延
× 1.8(1 个来源)
用法 B:吞吐
× 2.4~2.8(4 组数据)
二、别人做到哪了
单个 NPU 核已经很快,官方和第三方的测量结果一致
基于 RK3588 的端侧异构推理加速 · 初步调研报告
8
模型
输入尺寸
官方数据(ms)
第三方实测(ms)
YOLOv5s(目标检测)
640×640
15.0(ReLU 改版)
20.4(原版)
16.0
ResNet18(图像分类)
224×224
—
3.8 / 4.1(两个来源)
ResNet50(图像分类)
224×224
8.9
—
MobileNetV2(轻量分类)
224×224
2.2
—
单位均为单次推理时延(ms)。官方数据只算模型本身、不含读图和画框,原本是帧率,按 时延 = 1000 ÷ 帧率 换算;第三方数据是否包含前后处理,原文没有完全说明。
结论:单核部署这一步已经很成熟,YOLOv5s 一张图约 15~20 ms。再想提速,就要把闲着的另外 2 个核和 CPU 用起来。
二、别人做到哪了
用法 B:每个核开 1 个线程就拿到大部分收益,再多开收益递减
基于 RK3588 的端侧异构推理加速 · 初步调研报告
9
YOLOv5s,四组公开数据
最快的实现(C++ 零拷贝)3 个线程就到 174 fps,再加线程几乎不涨
其他实现过了 3 个线程后涨得明显变慢,但还在慢慢上涨
同样的方法,C++ 实现比 Python 快很多
各来源的写法、是否包含读视频和画框不同,所以只看趋势,不比较高低
二、别人做到哪了
CPU-NPU 协同:在 RK3588 上把一个模型拆开分工
基于 RK3588 的端侧异构推理加速 · 初步调研报告
10
RK3588 上已有的工作
只做到「CPU 准备数据,NPU 跑整个模型」
没找到把一个模型拆给 CPU 和 NPU 一起算的公开工作
其他芯片(手机、Jetson)上已有的方法
方法
做法
μLayer(2019)
把同一层的计算按通道拆开,CPU 和 GPU 各算一部分
CoDL(2022)
先预测每个算子在两种处理器上要多久,再决定怎么拆
Band(2022)
按「哪种处理器支持哪些算子」把模型切成几段,自动选每段在哪跑;最接近我们的第 3 步
机会:别的芯片上已经证明拆开分工能提速,把这套思路搬到 RK3588 的 CPU + NPU
二、别人做到哪了
小结
基于 RK3588 的端侧异构推理加速 · 初步调研报告
11
已经很成熟
单核部署:工具链完善,官方给了几十个模型的速度
用法 B(每核一份模型):吞吐提高 2.4~2.8 倍,有开源代码
做了,但不充分
用法 A(三核算一张图):只快约 1.8 倍,公开数据只有一组,原因没人系统分析
同一模型在 CPU 上要多久:缺少实测对比
基本空白
在 RK3588 上把一个模型拆给 CPU 和 NPU 协同计算
多核和 CPU 同时用起来的整体方案
创新点:做一个 benchmark,以及得到一个更通用的并行化方案
三、我们打算怎么做
规划
基于 RK3588 的端侧异构推理加速 · 初步调研报告
12
第 1 步 建立基线
同一个模型,分别测 CPU 和 1 个 NPU 核的时延(ms)
补上「CPU 要多久」这个缺口,作为后面所有对比的起点
第 2 步 多核并行
先用「每核一份模型」把吞吐(fps)提上去
再逐层分析「三核算一张图」为什么只快 1.8 倍
尝试把模型切成几段放到不同核上,接力处理
第 3 步 CPU-NPU 协同
测出每个算子在 CPU 和 NPU 上各要多久
据此决定在哪里切:NPU 擅长的留给 NPU,其余交给 CPU
CPU 同时负责读图、画框,和 NPU 并行
怎么评价:每一步都测时延(ms)、吞吐(fps)和各个核的忙碌程度,按 CPU → 1 个核 → 3 个核 → CPU + 3 个核 的顺序对比
三、我们打算怎么做
设计示意:流水线
基于 RK3588 的端侧异构推理加速 · 初步调研报告
13
现在:只用 1 个核,一张接一张
时间 →
CPU(读图)
NPU 核 0
NPU 核 1
NPU 核 2
1
图 1
2
图 2
3
图 3
4
图 4
闲着
闲着
设计后:3 个核轮流接力,CPU 同时准备下一张
时间 →
CPU(读图)
NPU 核 0
NPU 核 1
NPU 核 2
1
图 1
2
图 2
3
图 3
4
图 4
5
图 5
6
图 6
7
图 7
8
图 8
9
图 9
10
图 10
11
图 11
12
图 12
同样长的时间里:现在处理 4 张,流水线处理约 12 张。(示意图,各段长短是假设的,没画后处理;实际效果要等上板实测)
参考资料
基于 RK3588 的端侧异构推理加速 · 初步调研报告
14
Rockchip 官方模型库 rknn_model_zoo(单核速度数据):github.com/airockchip/rknn_model_zoo
RKNN-Toolkit2(模型转换工具):github.com/airockchip/rknn-toolkit2
rk3588-npu-bench(单核、三核、多线程实测):github.com/aurasuisui/rk3588-npu-bench
rknn-cpp-Multithreading / rknn-multi-threaded(多线程开源实现):github.com/leafqycc
CSDN:多线程异步提高 RK3588 的 NPU 占用率(2023)
Tomeu Vizoso:Rockchip NPU update 4(RK3588 开源 NPU 驱动作者博客,2024)
tinycomputers.io:Rockchip RK3588 NPU Deep Dive(ResNet18 实测)
μLayer(EuroSys 2019);CoDL、Band(MobiSys 2022)
A CPU–NPU Heterogeneous Edge Fault Diagnosis Framework,Sensors 2026