基于 TL3588-EVM 的 RK182X 算力卡部署实操(二)RKNN3 模型转换、YOLO 与 7B 大模型性能测试

作者:袖梨 2026-08-11

四、CNN与LLM模型测试

本章节基于瑞芯微官方所提供的参考案例,对模型推理功能(CNN与LLM)展开测试,以评估TL182X评估套件的性能。

请先参考TL3588-EVM产品资料的《系统启动卡制作及系统固化》文档,将产品资料“软件资料RK182X-AI-Acceleratorupdateimg[系统版本]”目录下对应的系统镜像制作成SD启动卡。

备注:系统镜像默认为普通Linux内核。

img_6a7a8d92a045a30.webp

本章节使用TL1828-A1.1为例进行演示,因此使用update_sodimm.img系统镜像进行测试。

4.1硬件连接

4.1.1 TL1828-A1.1

请将转接板拨码开关拨至1000(1~4)(ON为1,相反为0),如下图所示。

备注:该启动方式选择拨码开关实现对RK1828算力协处理器的配置,若拨码错误,将可能导致TL182X评估套件无法被TL3588-EVM评估板正确识别。

img_6a7a8d92a046731.webp

图 25

请将TL182X评估套件连接至TL3588-EVM评估板PCIe RC(CON21)接口,使用网线将评估板任意网口与路由器连接,将SD启动卡接入TL3588-EVM评估板Micro SD卡槽,硬件连接如下图所示。

备注:请先为TL182X评估套件上电,再为TL3588EVM评估板上电。

img_6a7a8d92a046d32.webp

图 26

4.1.2 TL1828-M-A1.1

请将TL182X评估套件连接至TL3588-EVM评估板PCIe RC(CON21)接口,使用网线将评估板任意网口与路由器连接,将SD启动卡接入TL3588-EVM评估板Micro SD卡槽,将RM1828MC0-F模组电源转接线连接至12V电源适配器,硬件连接如下图所示。

备注:请先为TL182X评估套件(为RM1828MC0-F模组供电)上电,再为TL3588-EVM评估板上电。

图 27

4.2搭建运行时环境

(1)环境搭建

若评估板已替换为产品资料“软件资料RK182X-AI-Acceleratorupdateimg”目录下对应的系统镜像(默认为普通Linux内核),可跳过以下步骤;否则,请参考下文进行环境搭建。

a) 替换内核

我司提供的TL3588EVM产品资料系统镜像中,内核默认未启用PCIe功能。请参考我司TL3588EVM产品资料的《Ubuntu系统使用手册》,替换为"boot-enable-pcie.img"内核镜像。

备注:该内核镜像位于TL3588-EVM产品资料“4-软件资料UbuntuKernelimagelinux-5.10.209-[版本号]-[Git序列号]”目录下,如需使用Linux-RT内核,请选用"boot-enable-pcie-rt.img"内核镜像。

b) 安装rknn3库及工具

我司提供的rknn3库及工具包位于产品资料“软件资料RK182X-AI-Acceleratorectruntime”目录下,请将rknn3库及工具包拷贝至评估板文件系统任意目录下。

img_6a7a8d92a047433.webp

执行如下命令,在评估板上安装rknn3库及工具。

Target# mkdir tmp

Target# tar zxf rknn3_rk182x_sodimm_installer_arm64.tgz -C tmp/

img_6a7a8d92a047a34.webp

图 28

Target# cd tmp/

img_6a7a8d92a048035.webp

图 29

执行如下命令,安装dpkg-architecture工具,以确保后续install.sh脚本顺利运行。

Target# apt install dpkg-dev

img_6a7a8d92a048436.webp

图 30

执行install.sh脚本,安装rknn3库及工具。

Target# ./install.sh

img_6a7a8d92a048837.webp

图 31

c)安装pcie-rkep驱动

请将位于产品资料“软件资料RK182X-AI-Acceleratorruntime[系统版本]”目录下的"pcie-rkep.ko"驱动文件拷贝至评估板文件系统"/usr/lib/modules/"目录下。

备注:

(1)如需使用Linux-RT内核,请使用"pcie-rkep-rt.ko"驱动文件,并将其重命名为"pcie-rkep.ko"。

(2)请根据评估板实际文件系统版本安装对应的驱动文件。

img_6a7a8d92a048c38.webp

图 32

至此,运行时环境搭建完毕,请重启评估板。

(3)查询PCIe设备及驱动

执行如下命令,查看评估板是否识别到PCIe设备。若打印如下信息,即表示已识别到PCIe设备。

Target# lspci

img_6a7a8d92a049139.webp

图 33

执行如下命令,查看pcie_rkep驱动是否已加载。若打印如下信息,即表示已加载pcie_rkep驱动。

Target# lsmod

img_6a7a8d92a0495310.webp

图 34

(4)查询算力卡信息

执行如下命令,使用rknn-smi工具查看算力卡信息,以确认算力卡能被正常识别。

Target# rknn-smi info

备注:rknn-smi(System Management Interface)工具可用于RKNPU设备的信息收集、功能配置、日志管理等功能。我司已提供相关文档位于产品资料“开发参考资料/Tools/”目录下。

img_6a7a8d92a0499311.webp

图 35

执行如下命令,查看算力卡型号名称。

Target# rknn-smi info -l

备注:不同批次算力卡的型号名称不同,请以实际型号为准。

img_6a7a8d92a049d312.webp

图 36

(5)开启rknn-smi工具

执行如下命令,查看评估板IP地址。

Target# ifconfig

img_6a7a8d92a04a1313.webp

图 37

本次查询到评估板IP地址为192.168.12.20。

在上位机Ubuntu系统执行如下命令,使用SSH协议登录评估板文件系统。

Host# ssh [email protected]

img_6a7a8d92a04a5314.webp

图 38

执行如下命令,使用rknn-smi工具以查看模型运行时CPU与NPU使用率。

Host# rknn-smi info -w

img_6a7a8d92a04a9315.webp

图 39

4.3优化CPU空闲状态

在Linux系统中,CPU通过cpuidle机制管理不同级别的空闲状态。较深层级的空闲状态虽然可以降低功耗,但会带来较大的唤醒延迟,在高负载或实时性要求较高的场景下,可能影响模型处理效率和TPS稳定性。

执行如下命令,通过禁用各CPU核心的state1空闲状态,使CPU保持在较浅层idle状态运行,从而降低唤醒延迟、减少时延抖动、提升Decode TPS处理性能。

Target# echo 1 > /sys/devices/system/cpu/cpu0/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu1/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu2/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu3/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu4/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu5/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu6/cpuidle/state1/disable

Target# echo 1 > /sys/devices/system/cpu/cpu7/cpuidle/state1/disable

img_6a7a8d92a04ac316.webp

图 40

如需恢复CPU状态,请执行如下命令进行恢复。

Target# echo 0 > /sys/devices/system/cpu/cpu0/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu1/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu2/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu3/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu4/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu5/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu6/cpuidle/state1/disable

Target# echo 0 > /sys/devices/system/cpu/cpu7/cpuidle/state1/disable

img_6a7a8d92a04b0317.webp

图 41

4.4运行CNN模型

请将“软件资料RK182X-AI-Acceleratorectmodelcnnyolov5s”目录下的所有文件拷贝至评估板文件系统任意目录。

Target# cd model/cnn/yolov5s/

img_6a7a8d92a04b4318.webp

图 42

执行如下命令,可查看rknn3_model_test程序相关参数信息。

备注:rknn3_model_test默认已打包进评估板文件系统。

Target# rknn3_model_test -h

img_6a7a8d92a04b8319.webp

图 43

参数说明:

:RKNN文件存放路径。

:Weight文件存放路径。

执行如下命令,运行yolov5s模型测试程序(即rknn3_model_test)。

Target# rknn3_model_test yolov5s_rknn3.rknn yolov5s_rknn3.weight

img_6a7a8d92a04bc320.webp

图 44

在上位机Ubuntu终端下,可查看模型运行时CPU与NPU使用率。

img_6a7a8d92a04c0321.webp

图 45

由结合上述打印信息可知,运行模型耗时28.775ms,CPU最大使用率为:15%,NPU使用率为0%。

4.5运行LLM模型

执行如下命令,可查看rknn3_session_test_eval_perf程序相关参数信息。

备注:rknn3_session_test_eval_perf默认已打包进评估板文件系统。

Target# rknn3_session_test_eval_perf -h

img_6a7a8d92a04c3322.webp

图 46

参数说明:

:RKNN文件存放路径。

:Weight文件存放路径。

:tokenizer.gguf文件存放路径。

:embedding.bin文件存放路径。

:模型转换时rknn.config中配置的max_ctx_len值。

:每次会话最多生成的Token数。

:十六进制数,用于选择启用的核心。

备注:参数决定模型转换和推理过程中输入序列的最大长度,参数决定推理生成阶段输出序列的最大长度。

4.5.1 运行Qwen2.5-3B模型

请将“软件资料RK182X-AI-AcceleratorectmodelllmQwen2.5-3B”目录下的所有文件拷贝至评估板文件系统。

备注:请确保用于拷贝Qwen2.5-3B模型的文件系统目录具备充足的剩余存储空间。

Target# cd /userdata/model/llm/Qwen2.5-3B/

img_6a7a8d92a04c7323.webp

图 47

执行如下命令,运行Qwen2.5-3B模型测试程序,该程序在测试过程中,会以随机生成的token序列作为测试样本,重复进行3次提问,最终统计并输出测试的性能。

Target# rknn3_session_test_eval_perf Qwen2.5-3B.rknn Qwen2.5-3B.weight Qwen2.5-3B.tokenizer.gguf Qwen2.5-3B.embed.bin 1024 128 128 0xff

img_6a7a8d92a04ca324.webp

图 48

程序统计性能:

img_6a7a8d92a04cd325.webp

图 49

由打印信息可得:

img_6a7a8d92a04d1326.webp

查看CPU使用率和NPU使用率:

由上图可以看到,CPU使用率最高54%,NPU使用率最高91%。

相关文章

精彩推荐