解锁 TL182X 算力卡:20TOPS 算力 RK1828 大模型部署全实操(二)
四、CNN与LLM模型测试
本章节基于瑞芯微官方所提供的参考案例,对模型推理功能(CNN与LLM)展开测试,以评估TL182X评估套件的性能。
请先参考TL3588-EVM产品资料的《系统启动卡制作及系统固化》文档,将产品资料“软件资料\RK182X-AI-Accelerator\updateimg\[系统版本]”目录下对应的系统镜像制作成SD启动卡。
备注:系统镜像默认为普通Linux内核。

本章节使用TL1828-A1.1为例进行演示,因此使用update_sodimm.img系统镜像进行测试。
4.1硬件连接
4.1.1 TL1828-A1.1
请将转接板拨码开关拨至1000(1~4)(ON为1,相反为0),如下图所示。
备注:该启动方式选择拨码开关实现对RK1828算力协处理器的配置,若拨码错误,将可能导致TL182X评估套件无法被TL3588-EVM评估板正确识别。

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

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评估板上电。

4.2搭建运行时环境
(1)环境搭建
若评估板已替换为产品资料“软件资料\RK182X-AI-Accelerator\updateimg\”目录下对应的系统镜像(默认为普通Linux内核),可跳过以下步骤;否则,请参考下文进行环境搭建。
a) 替换内核
我司提供的TL3588EVM产品资料系统镜像中,内核默认未启用PCIe功能。请参考我司TL3588EVM产品资料的《Ubuntu系统使用手册》,替换为"boot-enable-pcie.img"内核镜像。
备注:该内核镜像位于TL3588-EVM产品资料“4-软件资料\Ubuntu\Kernel\image\linux-5.10.209-[版本号]-[Git序列号]\”目录下,如需使用Linux-RT内核,请选用"boot-enable-pcie-rt.img"内核镜像。
b) 安装rknn3库及工具
我司提供的rknn3库及工具包位于产品资料“软件资料\RK182X-AI-Acceleratorect\runtime\”目录下,请将rknn3库及工具包拷贝至评估板文件系统任意目录下。

执行如下命令,在评估板上安装rknn3库及工具。
Target# mkdir tmp
Target# tar zxf rknn3_rk182x_sodimm_installer_arm64.tgz -C tmp/

Target# cd tmp/

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

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

c)安装pcie-rkep驱动
请将位于产品资料“软件资料\RK182X-AI-Accelerator\runtime\[系统版本]”目录下的"pcie-rkep.ko"驱动文件拷贝至评估板文件系统"/usr/lib/modules/"目录下。
备注:
(1)如需使用Linux-RT内核,请使用"pcie-rkep-rt.ko"驱动文件,并将其重命名为"pcie-rkep.ko"。
(2)请根据评估板实际文件系统版本安装对应的驱动文件。

至此,运行时环境搭建完毕,请重启评估板。
(3)查询PCIe设备及驱动
执行如下命令,查看评估板是否识别到PCIe设备。若打印如下信息,即表示已识别到PCIe设备。
Target# lspci

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

(4)查询算力卡信息
执行如下命令,使用rknn-smi工具查看算力卡信息,以确认算力卡能被正常识别。
Target# rknn-smi info
备注:rknn-smi(System Management Interface)工具可用于RKNPU设备的信息收集、功能配置、日志管理等功能。我司已提供相关文档位于产品资料“开发参考资料/Tools/”目录下。

执行如下命令,查看算力卡型号名称。
Target# rknn-smi info -l
备注:不同批次算力卡的型号名称不同,请以实际型号为准。

(5)开启rknn-smi工具
执行如下命令,查看评估板IP地址。
Target# ifconfig

本次查询到评估板IP地址为192.168.12.20。
在上位机Ubuntu系统执行如下命令,使用SSH协议登录评估板文件系统。
Host# ssh root@192.168.12.20

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

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

如需恢复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

4.4运行CNN模型
请将“软件资料\RK182X-AI-Acceleratorect\model\cnn\yolov5s\”目录下的所有文件拷贝至评估板文件系统任意目录。
Target# cd model/cnn/yolov5s/

执行如下命令,可查看rknn3_model_test程序相关参数信息。
备注:rknn3_model_test默认已打包进评估板文件系统。
Target# rknn3_model_test -h

参数说明:
- <model_path>:RKNN文件存放路径。
- <weight_path>:Weight文件存放路径。
执行如下命令,运行yolov5s模型测试程序(即rknn3_model_test)。
Target# rknn3_model_test yolov5s_rknn3.rknn yolov5s_rknn3.weight

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

由结合上述打印信息可知,运行模型耗时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

参数说明:
- <rknn_path>:RKNN文件存放路径。
- <weight_path>:Weight文件存放路径。
- <tokenizer.gguf>:tokenizer.gguf文件存放路径。
- <embedding.bin>:embedding.bin文件存放路径。
- <max_context_len>:模型转换时rknn.config中配置的max_ctx_len值。
- <max_new_token>:每次会话最多生成的Token数。
- <core_mask>:十六进制数,用于选择启用的核心。
备注:<max_context_len>参数决定模型转换和推理过程中输入序列的最大长度,<max_new_token>参数决定推理生成阶段输出序列的最大长度。
4.5.1 运行Qwen2.5-3B模型
请将“软件资料\RK182X-AI-Acceleratorect\model\llm\Qwen2.5-3B\”目录下的所有文件拷贝至评估板文件系统。
备注:请确保用于拷贝Qwen2.5-3B模型的文件系统目录具备充足的剩余存储空间。
Target# cd /userdata/model/llm/Qwen2.5-3B/

执行如下命令,运行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

程序统计性能:

由打印信息可得:

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

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

浙公网安备 33010602011771号