RK 3566 3568 3588 NPU 测试指导
概要:本文介绍了 RK 3566 3568 3588 平台上 NPU(神经网络处理器)的测试方法,包括驱动版本查看、开机日志检查、NPU 使用率获取以及 YOLOv5 demo 的使用指南,并指出常见报错的无害性,指导用户如何验证 NPU 功能完整性。
修改历史
| 时间 | 历史 |
|---|---|
| 250702 | 创建了本文 |
| 260714 | 更新“说明”章节 |
参考链接
-
redmine https://redmine.rpdzkj.cn/issues/21
-
demo下载 https://en.t-firefly.com/doc/download/94.html
-
demo使用说明 https://wiki.t-firefly.com/zh_CN/ROC-RK3568-PC/usage_npu.html
说明
- 实测只配置内核rknpu_driver,用户空间不配置,也可跑通本demo,因为该demo lib目录下配置了(ldd ./rknn_yolov5_demo即可看到)
librknnrt.so => lib/librknnrt.so (0x0000007fbc28b000) librga.so => lib/librga.so (0x0000007fbc24a000)
如果要测试系统下的librknnrt.so和librga.so,将lib目录重命名为lib.bak,再运行本demo即可。
1. 查看驱动版本
使用以下命令查看当前系统的 RKNPU 驱动版本:
sudo cat /sys/kernel/debug/rknpu/version
2. 查看开机日志中 NPU 加载情况
通过以下命令检查内核日志中的 NPU 相关信息(开机后及时使用,开机太久则dmesg消息已经被覆盖了,可能没有任何输出):
dmesg | grep -i RKNPU
示例输出:
[ 7.723479] RKNPU fde40000.npu: Adding to iommu group 0
[ 7.723864] RKNPU fde40000.npu: RKNPU: rknpu iommu is enabled, using iommu mode
[ 7.724091] RKNPU fde40000.npu: can't request region for resource [mem 0xfde40000-0xfde4ffff]
[ 7.724399] [drm] Initialized rknpu 0.9.3 20231121 for fde40000.npu on minor 1
[ 7.724863] RKNPU fde40000.npu: bin=0
[ 7.724909] RKNPU fde40000.npu: leakage=4
[ 7.724941] RKNPU fde40000.npu: pvtm = 88530, from nvmem
[ 7.724954] RKNPU fde40000.npu: pvtm-volt-sel=2
[ 7.724965] RKNPU fde40000.npu: soc version=0, speed=2
[ 7.725415] RKNPU fde40000.npu: avs=0
[ 7.725554] RKNPU fde40000.npu: l=0 h=2147483647 hyst=5000 l_limit=0 h_limit=0 h_table=0
[ 7.726007] RKNPU fde40000.npu: failed to find power_model node
[ 7.726016] RKNPU fde40000.npu: RKNPU: failed to initialize power model
[ 7.726021] RKNPU fde40000.npu: RKNPU: failed to get dynamic-coefficient
注:以上报错(例如 failed to initialize power model)不会影响 NPU 的正常使用。这是因为软件尝试控制电源失败,但实际上电源已由硬件控制,无需担心。
3. 查看 NPU 使用率
使用以下命令查看当前 NPU 的负载情况:
sudo cat /sys/kernel/debug/rknpu/load
实时监控:
watch -n 0.1 cat /sys/kernel/debug/rknpu/load
4. YOLOv5 Demo 使用指南
4.1 解压与准备
- 解压 demo 文件:
7z x rknn_yolov5_demo_Linux.7z
注意:没有7z软件时请使用下面命令安装 接入网络后:
sudo apt update
sudo apt install p7zip-full
- 进入 demo 目录:
cd rknn_yolov5_demo_Linux
- 赋予执行权限:
chmod 777 rknn_yolov5_demo
- 设置动态库路径(可选):
export LD_LIBRARY_PATH=./lib
4.2 运行 Demo
执行以下命令运行 YOLOv5 模型检测:
如果是3566/3568:
./rknn_yolov5_demo model/RK3566_RK3568/yolov5s-640-640.rknn ./model/bus.jpg resize ./out.jpg
如果是3588:
./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn ./model/bus.jpg resize ./out.jpg
第二个参数是模型,根据不同的cpu选择不同目录下的模型即可。
4.3 示例输出
post process config: box_conf_threshold = 0.25, nms_threshold = 0.45
Loading mode...
sdk version: 2.3.0 (c949ad889d@2024-11-07T11:35:33) driver version: 0.9.3
model input num: 1, output num: 3
index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], ...
model is NHWC input fmt
model input height=640, width=640, channel=3
Read ./model/bus.jpg ...
img width = 640, img height = 640
once run use 52.748000 ms
loadLabelName ./model/coco_80_labels_list.txt
person @ (209 243 286 510) 0.879723
person @ (479 238 560 526) 0.870588
person @ (109 238 231 534) 0.839831
bus @ (91 129 555 464) 0.692042
person @ (79 353 121 517) 0.300961
save detect result to ./out.jpg
loop count = 10 , average run 46.630200 ms
4.4 检测结果
- Demo 成功运行后,会在 demo 根目录下生成
out.jpg,图像上显示检测到的人和车辆等目标。
图片示例:

留下评论