2. RK3588硬件架构
RK3588 是瑞芯微面向边缘计算与高端 AIoT 场景的旗舰级 SoC,其核心设计思想是异构计算:把不同类型的计算任务交给最擅长的处理单元,从而在功耗、延迟和吞吐之间取得平衡。理解这套硬件架构,是后续 RKNN 模型部署、算子适配和性能调优的物理基础。
一、异构计算单元的分工
RK3588 内部集成了 CPU、GPU、NPU、VPU、DSP 等多类处理单元,它们各司其职:
- CPU:4×Cortex-A76(大核,最高约 2.4GHz)+ 4×Cortex-A55(小核,最高约 1.8GHz),组成 big.LITTLE 架构,负责操作系统调度、控制逻辑、前后处理和通用计算。
- GPU:Mali-G610 MP4,支持 OpenGL ES、OpenCL、Vulkan,常用于图像预处理、后处理、渲染和部分并行计算。
- NPU:6 TOPS 算力(INT8),三核架构,是 RKNN 模型推理的主力,支持 INT4/INT8/INT16/FP16 等精度。
- VPU:视频编解码单元,支持 8K 解码与 8K 编码,负责摄像头视频流的硬解与硬编,避免占用 CPU。
- DSP:用于音频、信号处理等实时性要求高的任务,减轻 CPU 负担。
关键认知:NPU 只负责“推理计算”,图像缩放、色彩转换、视频解码通常由 VPU/GPU/RGA 完成。部署时若把预处理也压给 CPU,往往成为性能瓶颈。
二、内存与存储:共享带宽是隐形瓶颈
RK3588 采用统一内存架构,CPU、GPU、NPU、VPU 共享 LPDDR 内存带宽。这意味着当视频解码、GPU 渲染和 NPU 推理同时进行时,带宽竞争会直接拉低整体性能。典型开发板通常配置 4GB/8GB/16GB LPDDR4 或 LPDDR5,存储则使用 eMMC 或 UFS。
在 RKNN 部署中,模型权重、输入输出张量都驻留在内存中。若模型较大或输入分辨率较高,需关注内存占用与带宽消耗。例如 1080p RGB 输入单帧约 6MB,多路视频叠加时内存压力显著上升。
| 资源类型 | 典型规格 | 对 RKNN 部署的影响 |
|---|---|---|
| CPU | 4×A76 + 4×A55 | 控制流、前后处理、多线程调度 |
| NPU | 6 TOPS INT8,三核 | 模型推理主算力,支持多核并行 |
| GPU | Mali-G610 MP4 | 图像预处理、OpenCL 加速 |
| VPU | 8K 编解码 | 视频流硬解,释放 CPU |
| 内存 | LPDDR4/5 4~16GB | 共享带宽,影响多任务并发 |
| 存储 | eMMC / UFS | 模型加载速度、系统启动 |
三、典型开发板与接口资源
常见 RK3588 开发板包括官方 EVB、Firefly、Orange Pi 5、Radxa Rock 5 等。它们通常提供以下接口:
- 显示:HDMI 2.1、DP、MIPI DSI、eDP,支持多屏异显。
- 摄像头:MIPI CSI 多路输入,可接多目摄像头。
- 网络:千兆以太网、Wi-Fi 6、蓝牙 5.0。
- 扩展:PCIe 3.0、USB 3.0/2.0、SATA、GPIO、I2C、SPI、UART。
- 存储:eMMC、TF 卡、M.2 NVMe(通过 PCIe)。
做边缘 AI 盒子时,优先使用 MIPI CSI 接摄像头、VPU 硬解视频、NPU 推理、GPU 做缩放,形成完整硬件流水线,避免 CPU 成为瓶颈。
四、案例与误区复盘
案例:某项目在 RK3588 上部署 YOLOv5s,输入 1080p。初期直接用 CPU 做 resize 和归一化,NPU 利用率仅 40%,帧率约 18fps。改为 RGA 做缩放、NPU 推理、CPU 只做后处理后,NPU 利用率提升到 85%,帧率稳定在 32fps。
常见误区:
- 认为“NPU 算力大就万事大吉”,忽视预处理和后处理的开销。
- 忽略内存带宽竞争,多路视频时性能骤降。
- 把模型放在 TF 卡运行,加载慢且不稳定,应放入 eMMC 或 NVMe。
- 未使用 VPU 硬解,用 CPU 软解视频,导致 CPU 满载。
# 查看 NPU 利用率与频率(示例)
cat /sys/kernel/debug/rknpu/load
cat /sys/class/devfreq/fdab0000.npu/cur_freq
# 查看内存与带宽占用
free -h
cat /proc/meminfo | grep -i ddr
部署前务必确认开发板的 NPU 驱动版本与 RKNN Toolkit2 版本匹配,否则会出现模型加载失败或推理结果异常。