解锁 TL182X 算力卡:20TOPS 算力 RK1828 大模型部署全实操(二)
四、CNN与LLM模型测试本章节基于瑞芯微官方所提供的参考案例,对模型推理功能(CNN与LLM)展开测试,以评估TL182X评估套件的性能。请先参考TL3588-EVM产品资料的《系统启动卡制作及系统固化》文档,将产品资料“软件资料\RK182X-AI-Accelerator\updateimg\[系统版本]”目录下对应的系统镜像制作成SD启动卡。
备注:系统镜像默认为普通Linux内核。
https://file1.elecfans.com/web3/M00/6F/3D/wKgZO2pykByANIB6AAAbXZ6Ns9Q684.png
本章节使用TL1828-A1.1为例进行演示,因此使用update_sodimm.img系统镜像进行测试。
4.1硬件连接
4.1.1 TL1828-A1.1
请将转接板拨码开关拨至1000(1~4)(ON为1,相反为0),如下图所示。备注:该启动方式选择拨码开关实现对RK1828算力协处理器的配置,若拨码错误,将可能导致TL182X评估套件无法被TL3588-EVM评估板正确识别。
https://file1.elecfans.com/web3/M00/6F/3C/wKgZPGpykEGAY2UmAAdnJp6DdmI609.png图 25
请将TL182X评估套件连接至TL3588-EVM评估板PCIe RC(CON21)接口,使用网线将评估板任意网口与路由器连接,将SD启动卡接入TL3588-EVM评估板Micro SD卡槽,硬件连接如下图所示。备注:请先为TL182X评估套件上电,再为TL3588EVM评估板上电。
https://file1.elecfans.com/web3/M00/6F/3C/wKgZPGpykGSASHuVAC41GI4APRE822.png图 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评估板上电。
https://file1.elecfans.com/web3/M00/6F/3C/wKgZPGpykIeAK6RVAWNkU9VVboU523.png图 27
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-[版本号]-\”目录下,如需使用Linux-RT内核,请选用"boot-enable-pcie-rt.img"内核镜像。b) 安装rknn3库及工具我司提供的rknn3库及工具包位于产品资料“软件资料\RK182X-AI-Acceleratorect\runtime\”目录下,请将rknn3库及工具包拷贝至评估板文件系统任意目录下。
https://file1.elecfans.com/web3/M00/6F/3C/wKgZPGpykJ2Ab6EPAAAfq5GbAFo155.png
执行如下命令,在评估板上安装rknn3库及工具。Target# mkdir tmpTarget# tar zxf rknn3_rk182x_sodimm_installer_arm64.tgz -C tmp/
https://file1.elecfans.com/web3/M00/6F/3E/wKgZO2pylICABBGyAAAcynbC3qk211.png图 28
Target# cd tmp/
https://file1.elecfans.com/web3/M00/6F/3D/wKgZPGpylJCAL_w7AAAICGVF5Xw686.png图 29
执行如下命令,安装dpkg-architecture工具,以确保**install.sh脚本顺利运行。Target# apt install dpkg-dev
https://file1.elecfans.com/web3/M00/6F/3E/wKgZO2pylKSAJ7E8AAB97Zfzjqw591.png图 30
执行install.sh脚本,安装rknn3库及工具。Target# ./install.sh
https://file1.elecfans.com/web3/M00/6F/3D/wKgZPGpylLKAVSlvAAE11ee8B4E771.png图 31
c)安装pcie-rkep驱动请将位于产品资料“软件资料\RK182X-AI-Accelerator\runtime\[系统版本]”目录下的"pcie-rkep.ko"驱动文件拷贝至评估板文件系统"/usr/lib/modules/"目录下。备注:(1)如需使用Linux-RT内核,请使用"pcie-rkep-rt.ko"驱动文件,并将其重命名为"pcie-rkep.ko"。(2)请根据评估板实际文件系统版本安装对应的驱动文件。
https://file1.elecfans.com/web3/M00/6F/3E/wKgZO2pylMCAWN9UAAASwgAuCZ4200.png图 32
至此,运行时环境搭建完毕,请重启评估板。(3)查询PCIe设备及驱动执行如下命令,查看评估板是否识别到PCIe设备。若打印如下信息,即表示已识别到PCIe设备。Target# lspci
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylNuAAd4mAAAZHYyl_f8391.png图 33
执行如下命令,查看pcie_rkep驱动是否已加载。若打印如下信息,即表示已加载pcie_rkep驱动。Target# lsmod
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylOuAGia7AAASBUZvBF8710.png图 34
(4)查询算力卡信息执行如下命令,使用rknn-smi工具查看算力卡信息,以确认算力卡能被正常识别。Target# rknn-smi info备注:rknn-smi(System Management Interface)工具可用于RKNPU设备的信息收集、功能配置、日志管理等功能。我司已提供相关文档位于产品资料“开发参考资料/Tools/”目录下。
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylPyAXcTiAAAqGtOvCBM240.png图 35
执行如下命令,查看算力卡型号名称。Target# rknn-smi info -l备注:不同批次算力卡的型号名称不同,请以实际型号为准。
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylQ-AUn_hAAAeCQdJSOE738.png图 36
(5)开启rknn-smi工具执行如下命令,查看评估板IP地址。Target# ifconfig
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylTiAI1z8AAD5SS-to_M748.png图 37
本次查询到评估板IP地址为192.168.12.20。在上位机Ubuntu系统执行如下命令,使用SSH协议登录评估板文件系统。Host# ssh root@192.168.12.20
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylUuAROSzAAEel8bC-z4966.png图 38
执行如下命令,使用rknn-smi工具以查看模型运行时CPU与NPU使用率。Host# rknn-smi info -w
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylViAFGxtAABTkMV8VoU491.png图 39
4.3优化CPU空闲状态
在Linux系统中,CPU通过cpuidle机制管理不同级别的空闲状态。较深层级的空闲状态虽然可以降低功耗,但会带来较大的唤醒延迟,在高负载或实时性要求较高的场景下,可能影响模型处理效率和TPS稳定性。执行如下命令,通过禁用各CPU核心的state1空闲状态,使CPU保持在较浅层idle状态运行,从而降低唤醒延迟、减少时延抖动、提升Decode TPS处理性能。Target# echo 1 > /sys/devices/system/cpu/cpu0/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu1/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu2/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu3/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu4/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu5/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu6/cpuidle/state1/disableTarget# echo 1 > /sys/devices/system/cpu/cpu7/cpuidle/state1/disable
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylWOAZqizAAAw4tKxZjA163.png图 40
如需恢复CPU状态,请执行如下命令进行恢复。Target# echo 0 > /sys/devices/system/cpu/cpu0/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu1/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu2/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu3/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu4/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu5/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu6/cpuidle/state1/disableTarget# echo 0 > /sys/devices/system/cpu/cpu7/cpuidle/state1/disable
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylXSAZsdOAAA0fScLDHQ283.png图 41
4.4运行CNN模型
请将“软件资料\RK182X-AI-Acceleratorect\model\cnn\yolov5s\”目录下的所有文件拷贝至评估板文件系统任意目录。Target# cd model/cnn/yolov5s/
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylc6AZXAVAAAW1zuPrXE483.png图 42
执行如下命令,可查看rknn3_model_test程序相关参数信息。备注:rknn3_model_test默认已打包进评估板文件系统。Target# rknn3_model_test -h
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpyld6AaCIvAABFT2qS6y8227.png图 43
参数说明:
[*]<model_path>:RKNN文件存放路径。
[*]<weight_path>:Weight文件存放路径。
执行如下命令,运行yolov5s模型测试程序(即rknn3_model_test)。Target# rknn3_model_test yolov5s_rknn3.rknn yolov5s_rknn3.weight
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpyleyADE7cAAnAbtV_Z3g509.png图 44
在上位机Ubuntu终端下,可查看模型运行时CPU与NPU使用率。
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylfuARVxjAAByaHD1cQE103.png图 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
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylgyAKvVNAAAwoVchbwE126.png图 46
参数说明:
[*]<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/
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylh-ADeQaAAAOIYgrQYo110.png图 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
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylnuAVLZnAABMM6PsJvA736.png图 48
程序统计性能:
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylqqAXXBlAABDhCCAFOg989.png图 49
由打印信息可得:
https://file1.elecfans.com/web3/M00/6F/3F/wKgZO2pylryAU6xmAAAUKVC6iJ8641.png
查看CPU使用率和NPU使用率:
https://file1.elecfans.com/web3/M00/6F/3E/wKgZPGpylsqALfZzAADY3K-dkTc628.png图 50
由上图可以看到,CPU使用率最高54%,NPU使用率最高91%。
这玩意不错啊,啥时候有试用的?
页:
[1]