系列文章目录
文章目录
前言

RK1828 是瑞芯微(Rockchip)推出的一款端侧 AI 协处理器,其核心使命是作为"AI 加速引擎",与主控芯片(如 RK3588)协同工作,专门应对端侧大模型部署中普遍存在的"内存墙"瓶颈。
与传统 SoC 内置 NPU 不同,RK1828 采用了"主控 SoC + AI 协处理器"的双芯架构。它并非要取代主控,而是作为专职的 AI 推理加速单元,通过 PCIe 或 USB 接口挂载到 RK3588、RK3576 等主控平台上。
这种设计的关键,在于它通过3D 堆叠封装技术,将高带宽 DRAM 直接集成在芯片内部,从而绕开了外部内存带宽的限制。其内部理论带宽可达约 1TB/s,远超通过 PCIe 接口获得的外部带宽,使得大模型推理所需的数据搬运不再成为瓶颈。
RK1828 的具体配置如下:
NPU 算力:20 TOPS (INT8),支持 INT4、INT8、INT16、FP8、FP16、BF16 等多种计算精度。
片上内存:5GB 3D 堆叠 DRAM,这是它与入门款 RK1820(2.5GB)最核心的区别,决定了它能承载的模型规模。
处理器架构:采用三核 64 位 RISC-V 架构作为控制核心。
功耗 (TDP):热设计功耗为 20W。实际运行中,单卡功耗约 10W,运行 7B 模型时平均功耗约 13.6W,峰值约 29.4W。
接口与形态:常见形态包括 M.2 2280 (M-Key) 和 SODIMM 算力卡,通过 PCIe 接口与主控连接。一个关键特性是,仅需 PCIe 2.1 x1 Lane 的带宽即可"满血"发挥其 AI 算力,对外部接口依赖极低。
得益于 5GB 的片上内存,RK1828 能够流畅地在端侧离线运行 8B 参数以下的LLM模型、VLM模型、TTS模型以及传统的CNN模型,具体模型支持可参考官方文件。
一、下载模型
首先可以在虚拟环境中安装魔搭的下载工具:
bash
pip install modelscope
然后根据具体模型名和本地保存位置进行下载:
bash
modelscope download --model Qwen/Qwen3-VL-2B-Instruct --local_dir /home/xxx/xxx
二、环境搭建
在服务器的虚拟环境中搭建RK环境,这个环境主要用于模型的量化及转换,只有转换得到对应模型文件才能在RK1828上推理。
首先下载解压rknn3_model_zoo和rknn3-toolkit工具包。
进入rknn3_model_zoo文件夹,安装对应的依赖环境:
bash
cd rknn3_model_zoo/
pip install -r requirements.txt
export PYTHONPATH=./
进入rknn3-toolkit文件夹,安装对应的依赖环境:
bash
cd rknn3-toolkit\rknn3-toolkit\packages
pip install -r requirements_cp310-1.1.0.txt
pip install rknn3_toolkit-1.1.0-cp310-cp310-manylinux2014_x86_64.whl
测试rknn3-toolkit是否能够正常使用:
bash
python -c "from rknn.api import RKNN; print('Toolkit OK')"

由于 Qwen3-VL 模型对部分依赖库版本有特殊要求,与rknn3_model_zoo的 requirements.txt 中的部分依赖库版本不兼容,需要单独手动安装以下依赖:
bash
pip install "torch>=2.9.0" "transformers==4.57.1" "onnxruntime>=1.23.2"
安装后可能会出现更新的依赖库与原来某些对应的依赖库不兼容问题:
bash
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
datasets 5.1.0 requires huggingface-hub<3.0,>=1.31.0, but you have huggingface-hub 0.36.2 which is incompatible.
torchvision 0.23.0 requires torch==2.8.0, but you have torch 2.14.1 which is incompatible.
datasets 冲突:环境里的 datasets 5.1.0 发布于 2026-10-05,它强制要求 huggingface-hub>=1.31。这与安装的 transformers 4.57.1 所需的 huggingface-hub<1.0 直接矛盾,pip 为了满足 transformers,只能将 huggingface-hub 降级到 0.36.2,从而导致 datasets 5.1.0 报错。
torchvision 冲突:原有的 torchvision 0.23.0 是为了匹配 torch 2.8.0 而安装的。当将 torch 升级到 2.14.1 后,这个旧版的 torchvision 自然就不兼容了。
手动更新:
bash
pip install "torchvision==0.29.1" "datasets==5.0.1"
三、模型转换
1、LLM语言解码器
进入安装好的模型转换虚拟环境,调用rknn3-model-zoo工具,先生成量化校准数据集,再根据校准数据通过GRQ量化把原始模型分割转换为独立的llm.onnx模型。
bash
cd rknn3-model-zoo/examples/Qwen3_VL/python/llm
python make_calidata.py --model_path Qwen/Qwen3-VL-2B-Instruct --datapath ../../../../datasets/MMBench/llm/dataset.json
python export_llm.py --quant --model_path Qwen/Qwen3-VL-2B-Instruct --export_llm_path Qwen3-VL-2B-llm.onnx

量化转换过程中可能提示缺少某些依赖库,给他pip补上即可:
bash
ModuleNotFoundError: No module named 'onnxscript'
pip install onnxscript
将转换好的onnx模型再次转换为rknn模型:
bash
python export_rknn.py --onnx_path Qwen3-VL-2B-llm.onnx --config Qwen3-VL-2B-llm.config.pkl --rknn_path Qwen3-VL-2B-llm.rknn --platform rk1820

2、Vision视觉编码器
依然是进入安装好的模型转换虚拟环境,调用rknn3-model-zoo工具,这次不需要重新生成量化校准数据集,直接复用之前llm模型的数据集即可,然后根据校准数据通过GRQ量化把原始模型分割转换为独立的vision.onnx模型。
bash
cd rknn3-model-zoo/examples/Qwen3_VL/python/vision
cp -r ../llm/quant_data ./
python export_vision.py --quant --model_path Qwen/Qwen3-VL-2B-Instruct --export_vision_path Qwen3-VL-2B-vision.onnx

同样将转换好的onnx模型再次转换为rknn模型:
bash
python export_rknn.py --onnx_path Qwen3-VL-2B-vision.onnx --rknn_path Qwen3-VL-2B-vision.rknn --platform rk1820

自此,获得以下6个模型文件,这些模型文件就是RK1828推理时所需要的数据文件:
bash
Qwen3-VL-2B-vision.rknn
Qwen3-VL-2B-vision.weight
Qwen3-VL-2B-llm.rknn
Qwen3-VL-2B-llm.weight
Qwen3-VL-2B-llm.tokenizer.gguf
Qwen3-VL-2B-llm.embed.bin
四、模型部署
在RK3588s+RK1828中下载解压rknn3_model_zoo文件,然后使用命令进行编译:
bash
cd rknn3-model-zoo/
chmod +x build-linux.sh
./build-linux.sh -t rk3588 -a aarch64 -d Qwen3_VL
调用编译好的可执行文件示例,输入对应的参数,比如模型路径、图片路径、prompt提示词,模型支持的图片宽高以及加速参数:
bash
cd install/rk3588_linux_aarch64/rknn_Qwen3_VL_demo
./rknn_qwen3_vl_demo \
<vision_rknn> <vision_weight> \
<llm_rknn> <llm_weight> \
<tokenizer_gguf> <embed_bin> \
<vision_core_mask> <llm_core_mask> \
<image_path> "<prompt>" \
[model_width model_height] [speedup_ratio]
示例:
./rknn_qwen3_vl_demo \
../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-vision.rknn \
../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-vision.weight \
../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-llm.rknn \
../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-llm.weight \
../../models/Qwen3-VL-2B-Instruct-onnx/Qwen3-VL-2B-llm.tokenizer.gguf \
../../models/Qwen3-VL-2B-Instruct-onnx/Qwen3-VL-2B-llm.embed.bin \
0xff 0xff \
/path/to/your/test_image.jpg \
"Describe this image in detail." \
384 384 1.0
参数说明:
vision_model_path:Vision 模型的结构文件路径,即 Qwen3-VL-2B-vision.rknn
vision_weight_path:Vision 模型的权重文件路径,即 Qwen3-VL-2B-vision.weight
llm_model_path:LLM 模型的结构文件路径,即 Qwen3-VL-2B-llm.rknn
llm_weight_path:LLM 模型的权重文件路径,即 Qwen3-VL-2B-llm.weight
tokenizer_path:LLM 的 Tokenizer 文件路径,即 Qwen3-VL-2B-llm.tokenizer.gguf
embedding_path:LLM 的 Embedding 文件路径,即 Qwen3-VL-2B-llm.embed.bin
vision_core_mask:Vision 模型的核心掩码,十六进制表示,0xff表示可以使用RK1828的3个NPU核心
llm_core_mask:LLM 模型的核心掩码,十六进制表示,0xff表示可以RK1828的3个NPU核心
image_path:待推理图片的路径
prompt:给模型的文本指令,需要用引号包裹
model_width:Vision 模型的输入宽度 与导出 Vision RKNN 时的 --img_w 一致
model_height:Vision 模型的输入高度 与导出 Vision RKNN 时的 --img_h 一致
speedup_ratio:SpeedUP 加速模式的控制比例,1.0表示自动模式,自动决定加速策略,0.0表示关闭SpeedUP加速,(0.0, 1.0) 之间的任意值表示手动模式,手动在这个区间内微调。
最终模型会输出对应结果
总结
RK1828和RK3588不一样,它不是一颗通用的应用处理器,而是一颗目标明确、特点突出的 AI 协处理器,通常搭配RK3588这种通用开发板使用。它通过 3D 堆叠内存技术,精准地解决了端侧大模型推理的带宽瓶颈,使得在功耗和体积受限的边缘设备上运行 7B 级别的模型成为可能。其"协处理器"的定位和灵活的算力卡形态,为现有设备的 AI 能力升级提供了一条高性价比的路径。