解锁 TL182X 算力卡:20TOPS 算力 RK1828 大模型部署全实操(一)
前言
本文基于TL3588-EVM评估板(4GByte DDR、32GByte eMMC配置),演示TL182X评估套件(型号:TL1828-A1.1、TL1828-M-A1.1)的测试方法。
开发环境
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.5 64bit
评估板系统版本:Ubuntu20.04/Ubuntu22.04、Linux-5.10.209/Linux-6.1.141、U-Boot-2017.09
LinuxSDK:LinuxSDK-[版本号](基于rk3588_linux_release_v1.5.0/rk3588_linux6.1_release_v1.4.0)
术语表
为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

注意事项
(1)无特殊说明情况下,本文默认使用USB TO UART2作为调试串口,使用系统启动卡(Micro SD方式)启动系统,通过路由器与PC机进行网络连接,请确保PC机、Ubuntu系统可正常访问互联网。
(2)我司提供的产品资料目录具体说明如下。

一、算力卡简介
TL182X评估套件基于瑞芯微RK1828算力协处理器设计,算力高达20TOPS@INT8,由RK1828算力卡模组和转接板组成。RK1828算力卡模组有SODIMM金手指(型号:RM1828SA0-F)、M.2 Key B-M金手指(型号:RM1828MC0-F)两种连接方式,均可通过PCIe 2.1金手指接口的转接板连接创龙科技RK3588等评估板使用,方便用户快速进行产品方案评估与技术预研。
具备如下特点:
(1)集成高算力NPU、3x RISC-V核心。
(2)支持INT4/INT8/INT16/FP8/FP16/BF16混合精度运算,最大算力20TOPS(INT8)。
(3)内嵌高带宽DRAM,容量高达5GByte。
(4)支持TensorFlow、MXNet、PyTorch、Caffe、ONNX等主流框架网络模型。
TL1828-A1.1由RM1828SA0-F模组(含散热器)和转接板组成,模组尺寸为69.6*45*20.67mm,重量约为76g。
TL1828-M-A1.1由RM1828MC0-F模组(含散热器)和转接板组成,模组尺寸为81*25*21.75mm,重量约为53g。
备注:如需基于TL182X评估套件设计底板,可查看产品资料“硬件资料\xxx\”目录下的硬件设计指南。
1.1软件框架和工具
图 1
(1)PC端开发环境包含RKNN3 Toolkit,RKNN3 Model Zoo等。
a) RKNN3 Toolkit:是一个软件开发工具包,可将PyTorch、ONNX等深度学习框架训练的模型转换为RKNN格式,支持用户进行模型转换、推理和性能评估;
b) RKNN3 Model Zoo:提供了丰富的模型转换示例,涵盖多种AI模型类型;
(2)板端开发环境包含RKNN3 Runtime,AI应用Examples,工具集合,驱动等。
a) RKNN3 Runtime:模型转换完成后,可在评估板上使用RKNN3 API加载和运行RKNN模型。除RKNN3 API外,还支持通过OpenAI 兼容API调用大语言模型(LLM);
b) Examples:提供模型应用参考示例;
c) 工具集合:配备了用于调试的RKNN-SMI和RKNN-Console等工具。这些工具能够帮助开发者对模型运行状态进行实时监控和调试;
d) 驱动:提供RK182X PCIe EP驱动,确保评估板与外部设备之间的高速、稳定通信。
1.2开发流程
(1)CNN模型开发流程。

(2)LLM模型开发流程。

相关内容可查阅RK182X SDK开发包"rknn/rknn3-runtime/doc"目录下《01_Rockchip_RK182X_Quick_Start_RKNN3_SDK_V1.0.0_CN.pdf》中的“开发流程”章节。同时,我司亦提供相关文档位于产品资料“开发参考资料\rkkn3-runtime\”目录下以供参考。
1.3测试结果汇总
本文档从CNN(卷积神经网络)与LLM(大语言模型)两个维度进行测试,验证我司RK3588评估板适配TL182X评估套件的性能,案例测试结果汇总说明如下表所示。
备注:以下测试基于Ubuntu20.04评估板文件系统完成;经实测,Ubuntu22.04评估板文件系统下的性能测试结果与Ubuntu 20.04接近。
(1)CNN性能

备注:由于RM1828MC0-F模组的散热能力弱于RM1828SA0-F模组,因此官方固件已将RM1828MC0-F模组的NPU最高主频默认限制为850MHz,故其实际测试性能略低于RM1828SA0-F模组。
(2)LLM性能

备注:指标参数解释:
a) TTFT:模型生成第一个token所需的时间。
b) TPOT:生成每个输出token所需的平均时间。
C) TPS:模型每秒能生成的token数量。
二、开发环境搭建
请参考我司TL3588-EVM产品资料的《开发环境搭建》安装Ubuntu22.04.5操作系统。
2.1安装RK128X SDK
打开Ubuntu,执行如下命令,创建RK128X工作目录。
Host# mkdir -p /home/tronlong/RK3588/rk182x_sdk

我司已提供官方RK1820_RK1828_AI_SDK_RELEASE_V1.0.0.tar.gz开发包位于案例“软件资料\RK182X-AI-Accelerator\sdk\”目录下。请将SDK开发包拷贝至RK3588工作目录,执行如下命令,将SDK开发包解压至RK3588工作目录。
备注:该SDK包无需编译,可直接使用。
Host# cd /home/tronlong/RK3588/rk182x_sdk
Host# tar zxf RK1820_RK1828_AI_SDK_RELEASE_V1.0.0.tar.gz


2.2安装RKNN3 Toolkit
安装RKNN3 Toolkit前,需确保系统为64位Ubuntu 22.04,且已安装Python 3.10,以满足其运行环境要求。
备注:相关内容可查阅RK182X SDK开发包"rknn/rknn3-toolkit/doc"目录下的参考文档。我司亦提供相关文档位于产品资料“开发参考资料\rknn3-toolkit\”目录下。
(1)安装Python环境
执行如下命令,新建rknn3-toolkit目录。
Host# mkdir rknn3-toolkit

为满足系统对多版本Python环境的兼容需求,推荐采用Miniforge3进行Python环境管理。我司已提供Conda安装包Miniforge3-Linux-x86_64.sh位于产品资料“软件资料\RK182X-AI-Acceleratorect\model\bin\”目录下。请将其拷贝至RK3588工作目录。
Host# bash Miniforge3-Linux-x86_64.sh
备注:安装过程中请根据终端提示逐步确认操作。



执行如下命令,进入Conda base根环境,创建名为"toolkit3"的Python3.10环境。
备注:环境名可自定义修改。
Host# source ~/.bashrc
Host# conda create -n toolkit3 python=3.10


执行如下命令,激活"toolkit3"环境
Host# conda activate toolkit3

备注:
a) 如需退出当前虚拟环境,可执行"conda deactivate"命令。
Host# conda deactivate

b ) 如需取消终端自动加载conda环境,将"~/.bashrc"以下内容删除或注释即可。

至此,完成Python3.10环境的配置。
(2)安装RKNN3 Toolkit
进入rk128x_sdk开发包的"/rknn/rknn3-toolkit/rknn3-toolkit/"目录。
Host# cd /home/tronlong/RK3588/rk182x_sdk/rknn/rknn3-toolkit/rknn3-toolkit/

执行如下命令,使用pip工具安装Python依赖库。
Host# pip install -r packages/requirements_cp310-1.0.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple


执行如下命令,安装RKNN3 Toolkit工具。
Host# pip install packages/rknn3_toolkit-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple


执行如下命令,验证rknn3-toolkit是否安装成功。
Host# python3
Python# from rknn.api import RKNN

若导入RKNN库没有报错,则表示安装成功。
三、模型转换说明
本次以yolov5s模型为例进行演示。请将产品资料“软件资料\RK182X-AI-Acceleratorect\model\cnn\yolov5s\yolov5s_rknn3.onnx”拷贝至上位机Ubuntu任意目录。
进入文件存放目录,执行如下命令,进入Conda base根环境,并激活"toolkit3"环境。
Host# cd /home/tronlong/RK3588/rknn3-toolkit/
Host# source ~/miniforge3/bin/activate
Host# conda activate toolkit3

瑞芯微官方在rk182x_sdk开发包的"/rknn/rknn3-model-zoo/examples/<案例名>/python"目录下提供了各类模型转换所需的源码文件convert.py。
执行如下命令,进入rk182X sdk开发包源码"/rknn/rknn3-model-zoo/examples/yolov5/python/"目录,在该目录下执行convert.py脚本文件,将ONNX模型转换为TL182X兼容的RKNN格式。
Host# cd /home/tronlong/RK3588/rk182x_sdk/rknn/rknn3-model-zoo/examples/yolov5/python/
Host# python convert.py /home/tronlong/RK3588/rknn3-toolkit/yolov5s_rknn3.onnx rk1828
参数解释:
(1)/home/tronlong/RK3588/rknn3-toolkit/yolov5s_rknn3.onnx:ONNX模型存放路径。
(2)rk1828:目标平台。


脚本执行完成后,在原本存放ONNX模型的目录中,将会生成已完成转换的RKNN模型文件以及对应的权重文件。


浙公网安备 33010602011771号