华北地区负责人:17340067106(毛经理)
华东地区负责人:17358670739(甘经理)
华南、华西地区负责人:19113907060(耿女士)
软件算法咨询:18982151213(刘先生)

联系我们
产品咨询

RK3588+RK1828 多卡级联部署 Qwen3.8-27B 的具体步骤是什么?

作者:万物纵横
发布时间:2026-08-19 09:22
阅读量:

重要前置说明


1. RKNN3 / RKLLM3 官方原生不支持多卡张量并行跑 27B 稠密大模型,没有开箱即用多卡 demo;整套多卡分片协同推理需要上层自研调度层(层并行 / 模型分片、PCIe 跨卡数据收发、多卡同步)


2. 硬件最低配置:RK3588 载板(≥4 路 M.2 Key M PCIe 扩展)+ 4 片 RK1828(单片 5GB HBM),INT4 量化;INT4 权重≈13.5GB + KV Cache,4 卡合计 20GB HBM 才能完整容纳;双卡 10GB HBM 无法全卡部署,只能做 SSD / 内存权重卸载,速度极慢,仅演示使用


3. 整体流程分为:硬件搭建与驱动适配 → PC 端模型分片、量化、导出 RKNN → 板端自研多卡调度程序开发 → 多卡协同推理调试、性能调优、API 封装




第一阶段:硬件搭建、内核与 RKNN3 运行时部署(RK3588 主控板)


Step1 硬件选型与装配


1. 主控:RK3588 核心板,配套支持 4 路 M.2 Key M PCIe扩展底板(普通双路底板无法 4 卡扩展)


2. 协算卡:4 张 RK1828 M.2 PCIe 卡,配套独立 12V 大功率供电、强化散热


3. 整机:大容量 DDR4 内存(≥16GB)、高速 NVMe SSD(存放分片模型权重)


4. 装配要点


RK1828 需要独立供电,PCIe 供电不足以满负载运行


上电时序:RK3588 主控先上电,再使能 RK1828(底板 GPIO 控制 PERST 复位),防止硬件损坏


Step2 固件、内核、设备树适配


1. 使用瑞芯微官方适配 RK1828 的 Linux 6.1 内核,底板设备树开启多路 PCIe 控制器、PCIe Switch(4 卡扩展必须 PCIe Switch)


2. 编译 RK1828 固件包 rknn3_rk182x_m2_installer_arm64.tgz


3. 拷贝固件包到 RK3588 板端,解压执行安装脚本


tar xzf rknn3_rk182x_m2_installer_arm64.tgz

cd rknn3_rk182x_m2_installer

sudo ./install.sh

reboot


Step3 验证 RK1828 识别、安装 RKNN3 Runtime + RKLLM3


# 查看PCIe是否识别全部4张RK1828

lspci | grep RK182

# 查看rk182设备信息,获取每张卡device-id/bus-id

rknn-smi info


正常输出 4 条 RK1828 设备,记录每一张的设备 ID:dev0 /dev1 /dev2 /dev3


1. 安装板端 RKNN3 Runtime、RKLLM3 库([librkllmrt.so](librkllmrt.so)、librknn\[_api.so](_api.so))


2. 安装依赖:aarch64 gcc、cmake、protobuf、openblas


3. 编译官方单卡 demo(Qwen3-8B),验证单张 RK1828 推理正常(必须先保证单卡可用,再做多卡开发)


第二阶段:PC 端(x86_64 Ubuntu)模型预处理、分片、量化导出


PC 配置建议:≥128GB 内存,NVIDIA GPU(用于 GRQ 量化),RKNN3 Toolkit(配套板端 Runtime 版本,建议 V1.0.4+)


Step1 下载原始模型


# 下载 Qwen3.8-27B 原始权重

git clone https://modelscope.cn/models/Qwen/Qwen3.8-27B


Step2 模型分片策略(自研核心,官方无工具)


两种分片方案可选:


1. 流水线并行 PP(推荐入门):把 Transformer Decoder 层按数量切分,例如 27B 一共 80 层,4 卡分配:20 层 / 卡;卡 0 输出中间特征通过 PCIe 传给卡 1,依次接力计算;实现简单,通信量更小


2. 张量并行 TP(性能更好,开发量大):每层 Attention 头、FFN 权重横向切分到 4 卡,每层推理完成后主控做 All-Gather/Reduce-Scatter 聚合;通信开销大,PCIe 带宽瓶颈明显


注意:RKLLM 原生只支持单卡完整 rknn 模型,不能直接加载分片 rknn,二选一实现方案:


方案 A:拆分模型为 4 个独立子模型,分别导出 4 套.rknn、tokenizer、embed.bin,自研主控调度程序依次调度每张卡加载对应子模型,传递中间 tensor


方案 B:基于 RKNN C API,自行封装分布式推理框架(参考 megatron-lm 分片逻辑)


Step3 INT4 量化(GRQ 量化,RKNN3 原生支持)


1. 准备量化校准数据集(CMMLU / 自建业务数据集,npy 格式)


2. 修改官方 export_rknn.py 脚本,适配 Qwen3.8-27B 模型结构,开启 INT4 GRQ 量化,设置 group-size=128/256


3. 导出 4 套分片模型文件,每个分片产出:


xxx_partX.rknn


xxx_partX.config.pkl


xxx_partX.tokenizer.gguf(全局共用 1 份即可)


xxx_partX.embed.bin(embedding 层可放在主控或第一张 RK1828)


导出命令参考(分片后子模型)


python export_rknn.py \

--onnx_path ./qwen3.8-27b_part0.onnx \

--config ./qwen3.8-27b_part0.config.pkl \

--rknn_path ./qwen3.8-27b_part0.rknn \

--platform rk1828 \

--quant int4 \

--quan_dataset ./calib.npy


Step4 打包全部分片模型,上传至 RK3588 板端 NVMe SSD


目录规划示例


/opt/llm/qwen3.8-27b-4split/

├── part0/

│   ├── qwen3.8-27b_part0.rknn

│   ├── qwen3.8-27b_part0.config.pkl

│   └── qwen3.8-27b_part0.embed.bin

├── part1/

├── part2/

├── part3/

└── qwen3.8-27b.tokenizer.gguf


第三阶段:自研多卡协同调度程序开发(核心定制开发工作)


官方 rkllm3-server 仅支持单卡单模型,原生不支持多卡串联 / 并行,必须自研 C/C++ 调度服务,调用 RKLLM C API


Step1 整体调度架构


1. RK3588 主控负责:tokenizer 编码、解码、prompt 管理、KV Cache 全局管理、PCIe 跨卡 tensor 数据拷贝、多卡任务调度、流式输出


2. 4 张 RK1828 协卡:各自加载对应分片子 rknn 模型,接收上层输入 tensor,执行 NPU 推理,输出中间 feature 返回主控


3. 通信链路:全部中间张量由主控内存中转(RK1828 之间无 P2P 直连,硬瓶颈)


Step2 开发核心模块


1. 多设备管理模块:调用 rknn api 打开 4 个 RK1828 设备句柄,绑定 bus-id


2. 分片加载模块:分别加载 part0~part3 四套 rknn 子模型到对应 RK1828 HBM


3. 流水线推理调度:prefill 填充阶段、decode 生成循环,串行 / 并行调度 4 张子模型,流转中间张量


4. KV Cache 分片管理:每层 KV 缓存跟随 decoder 分片存到对应 RK1828 片上 HBM,减少 PCIe 传输


5. API 封装:实现 OpenAI 兼容接口(/v1/chat/completions),对外提供服务


Step3 交叉编译调度服务


使用 aarch64-linux-gnu 交叉编译工具链,链接:librkllmrt.so librknn_api.so


cmake -DCMAKE_TOOLCHAIN_FILE=aarch64.cmake ..

make -j4


编译产出:llm_multi_card_server,拷贝到 RK3588 板端


第四阶段:板端多卡联调、推理验证与性能优化


Step1 板端启动多卡推理服务


# 调高文件句柄上限(大模型加载必备)

ulimit -n 102400

# 启动自研多卡调度服务,指定4张rk1828设备ID、分片模型目录

./llm_multi_card_server \

--model-root /opt/llm/qwen3.8-27b-4split \

--dev-id 0,1,2,3 \

--max-ctx-len 4096 \

--host 0.0.0.0 \

--port 8080


Step2 功能验证测试


1. curl 调用 OpenAI 接口,测试基础对话、长上下文


2. 排查常见问题:tensor 尺寸不匹配、分片权重对齐错误、PCIe 传输超时、HBM 内存溢出、KV Cache 泄漏


3. 日志打印各阶段耗时:TTFT(首 token 延迟)、token/s 生成速度


Step3 性能调优重点


1. 优化:embedding、lm_head 层放到 RK3588 主控 CPU/NPU,减少协卡 HBM 占用


2. 优化:合并小 tensor 传输、减少 PCIe 频繁小包拷贝,增加 batch 传输


3. 优化:限制上下文长度(4K/8K,16K 以上 HBM 极易溢出)


4. 优化:供电与散热,RK1828 过热降频会导致推理断崖式掉速


5. 权衡:分片越多,单卡计算越少,但 PCIe 通信延迟越高,4 卡是 27B 的平衡点


第五阶段(备选低成本方案:不做自研多卡张量并行)


如果无法投入大量自研开发,可以采用 llama.cpp GGUF + 分层卸载 折中方案


1. PC 端将 Qwen3.8-27B 导出 GGUF INT4 量化文件


2. 在 RK3588 板端编译适配 RK1828 后端的 llama.cpp


3. 使用 --ngl 参数,将部分 decoder 层卸载到多张 RK1828,剩余层跑 RK3588 CPU / 内存


优点:无需自研分片调度;缺点:速度慢,长上下文不稳定,不适合商用高并发场景


风险与落地建议总结


1. 开发周期长:多卡分片调度属于定制开发,无官方参考工程,开发周期通常 4~8 周;优先评估是否可以降级使用 Qwen3.8-14B / Qwen3-8B(单 / 双卡 RK1828 开箱可用)


2. 性能预期:PCIe 无卡间直连,27B 多卡推理 token 生成速度远低于同预算国产 GPU 方案,适合低并发、私有化边缘本地部署(智慧园区、本地私有知识库),不适合高吞吐业务


3. 硬件限制:市面绝大多数 RK3588 商用盒子仅支持双 RK1828 扩展,硬件层面无法 4 卡部署,选型底板前务必确认 PCIe 扩展能力

家具美容培训

家具维修培训

- END -
分享:
留言 留言 试用申请
产品咨询 产品咨询 硬件设备咨询
华北地区负责人:17340067106(毛经理)
华东地区负责人:17358670739(甘经理)
华南、华西地区负责人:19113907060(耿女士)
技术咨询 技术咨询 软件算法咨询
18982151213(刘先生)
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *