reComputer RK3576 集成片内 NPU,同时提供 M.2 插槽用于扩展外部 AI 加速模块。
本次测试将同一个 YOLO26n 模型(COCO 80 类、640×640、INT8)分别部署到三种推理后端:
- RK3576 片内 NPU
- Hailo-8 M.2 加速模块
- RK182x M.2 加速模块
我们重点对比单路与 8 路并发场景下的实际 FPS。三种方案均使用同一段 640×640、共 394 帧的视频,视频解码与 NMS 均采用同一套主机端实现,以尽量减少软件流程差异对测试结果的影响。
快速部署
准备工作
需要一台 reComputer RK3576,或同系列兼容设备。
Hailo-8 与 RK182x 共用同一个 M.2 插槽,因此同一时间只能安装其中一个模块;RK3576 片内 NPU 则无需额外硬件。
仓库中的安装脚本会使用随仓依赖创建彼此隔离的离线 Python 环境,但不会安装或覆盖内核驱动。Hailo-8 和 RK182x 仍需板端已有匹配驱动,并安装对应的硬件模块。
1. 获取代码
三种后端所需的模型文件均已包含在仓库中,无需自行转换。
git clone https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x
cd rk3576-hailo8-vs-rk182x2. 单路推理
Hailo-8
将 Hailo-8 安装到 M.2 插槽后运行:
bash scripts/install-hailo8.sh
bash scripts/run-hailo8.shRK3576 片内 NPU
bash scripts/install-rk3576.sh
bash scripts/run-rk3576.shRK182x
将 RK182x 安装到 M.2 插槽后运行:
bash scripts/install-rk182x.sh
bash scripts/run-rk182x.sh环境只需安装一次;换视频时,将路径加在 run 命令后面即可,例如 bash scripts/run-rk3576.sh /path/to/clip.mp4。
3. 8 路并发测试
Hailo-8
.venvs/hailo8/bin/python Hailo/Hailo8/run_streams_aggregate.py \
--hef model/Hailo/yolo26n_hailo8_official.hef \
--video video/test.mp4 \
--streams 8 \
--frames 200 \
--json out/hailo8_8stream.jsonRK3576 片内 NPU
.venvs/rk3576/bin/python common/run_video_streams_benchmark.py \
--backend rk3576 \
--model model/rk3576/yolo26n_rk3576_int8.rknn \
--video video/test.mp4 \
--instances 1,2,4,8 \
--frames 200 \
--json out/rk3576_multi.jsonRK182x
.venvs/rk182x/bin/python common/run_video_streams_benchmark.py \
--backend rk1820 \
--model model/rk1820/yolo26n_rk1820_int8.rknn \
--weight model/rk1820/yolo26n_rk1820_int8.weight \
--video video/test.mp4 \
--instances 1,2,4,8 \
--frames 200 \
--json out/rk1820_multi.json4. 查看测试结果
单路推理完成后,会在 out/<backend>/ 目录生成:
- 带检测框的
annotated.mp4 - 包含逐帧检测结果及各阶段 FPS 的 JSON 文件
多路测试生成的 JSON 中,aggregate_fps 表示多路并发场景下的总吞吐率。测试过程中,终端也会实时输出 FPS。
可以替换为任意测试视频,输入分辨率不限,脚本会自动 letterbox 到 640×640。本页测试使用的是一段 640×640、共 394 帧的交通场景视频。
单路性能:Hailo-8 表现最佳
| 加速器 | 部署方式 | 单路 FPS |
|---|---|---|
| Hailo-8 | M.2 加速模块 | 49.2 |
| RK3576 片内 NPU | SoC 内置 | 23.5 |
| RK182x | M.2 加速模块 | 17.5 |
在单路场景下,Hailo-8 达到 49.2 FPS,约为 RK3576 片内 NPU 的 2.1 倍;同时,其单帧推理延迟最低,为 13.9 ms。
8 路并发:RK182x 获得最高总吞吐
| 并发路数 | Hailo-8 | RK3576 片内 NPU | RK182x |
|---|---|---|---|
| 1 路 | 50.3 | 21.2 | 16.2 |
| 2 路 | 51.3 | 43.2 | 34.4 |
| 4 路 | 51.6 | 52.3 | 57.0 |
| 8 路 | 51.6 | 69.7 | 88.6 |
从多路并发结果可以看到:
- Hailo-8 的总吞吐基本保持稳定:从 1 路到 8 路,总吞吐始终维持在约 50 FPS。8 路并发时,平均每路约为 6.4 FPS。
- RK3576 片内 NPU 的总吞吐随并发增加而提升:从 1 路的 21.2 FPS 提升到 8 路的 69.7 FPS,8 路时平均每路约为 8.7 FPS。
- RK182x 的多路扩展能力最明显:8 路并发时总吞吐达到 88.6 FPS,平均每路约为 11.1 FPS,约为 RK3576 片内 NPU 的 1.27 倍、Hailo-8 的 1.7 倍。
三种推理方案的实际输出效果
以下为同一段视频、同一帧在三种推理后端上的实际输出:
从左到右依次为:
Hailo-8 → RK3576 片内 NPU → RK182x
选型建议
| 使用场景 | 建议方案 | 依据 |
|---|---|---|
| 单路 / 单相机 | Hailo-8 | 49.2 FPS,单帧延迟 13.9 ms |
| 单路,且不希望增加外部模块 | RK3576 片内 NPU | 23.5 FPS,无需额外加速硬件 |
| 多相机 / 4 路以上并发 | RK182x | 8 路总吞吐 88.6 FPS,高于片内 NPU 的 69.7 FPS 和 Hailo-8 的 51.6 FPS |
| 更低的单帧推理延迟 | Hailo-8 | 单帧推理延迟 13.9 ms |
简单来说:
- 单路实时推理更关注吞吐与延迟时,可以优先考虑 Hailo-8。
- 不希望增加额外硬件时,可以直接使用 RK3576 片内 NPU。
- 当应用需要更高的多路总吞吐时,RK182x 更适合多相机并发场景。
在 8 路并发测试中,RK3576 片内 NPU 的总吞吐达到 69.7 FPS,高于 Hailo-8 的 51.6 FPS;RK182x 则进一步提升到 88.6 FPS。对于需要保留 SoC 片内 NPU 算力,同时进一步提升多路推理吞吐的应用,外接 RK182x 可以提供额外的独立计算资源。
源码与数据
- 代码、模型文件(HEF / RKNN / RKNN3)、汇总数据
results/summary.json与两张对比图表: https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x - 逐帧检测记录、多路并发原始记录、运行画面与报告:v1.0.0 Release 附件
rk3576-hailo8-vs-rk182x-benchmark-artifacts-v1.0.0.ziphttps://github.com/inteintegrity/rk3576-hailo8-vs-rk182x/releases/tag/v1.0.0