RKLLM
RKLLM 是瑞芯微提供的设备端 LLM 推理运行时,在 RK1828 上加载 RKNN 格式的大语言模型并执行推理。rkllm3-server 和 C API 推理 demo 都基于 RKLLM 运行时。
组成部分
| 组件 | 说明 |
|---|---|
librknn3_api.so | RKNN3 核心运行时库 |
pcie-rkep | PCIe 驱动模块 |
rknn-smi | NPU 监控工具(类似 nvidia-smi) |
rkllm3-server | OpenAI 兼容 API 推理服务 |
rknn3_llm_demo | C 语言原生推理示例 |
rknn3_cnn_demo | C 语言 CNN 推理示例 |
/lib/firmware/rknn3_rk1820.img | 固件文件 |
提示
本文基于 RKLLM x.x.x 版本测试。版本号不同可能导致 API 差异,请参考官方文档。
安装
RKLLM 运行时通常已预装在出厂系统中。如需手动安装:
# 安装 RKNN3 运行时(包含 librknn3_api.so、rknn-smi 等)
sudo dpkg -i rknn3-runtime_*.deb
# 安装 rkllm3-server
sudo dpkg -i rkllm3-server_*.debrknn-smi 监控工具
rknn-smi 用于查看 NPU 状态,类似 NVIDIA 的 nvidia-smi:
rknn-smi info预期输出:
+-----------------------+---------------+---------------+----------------------+
| Device | Health | Power(mW) | Npu(%) |
| Chip Name | Bus-Id | Temp(C) | Memory-Usage(MB) |
+=======================+===============+===============+======================+
| 0 | OK | NA | 0 |
| 0 RK1828 | 0004:41:00.0 | 42 | 1434 / 5120 |
+-----------------------+---------------+---------------+----------------------+关键字段说明:
| 字段 | 说明 |
|---|---|
| Health | NPU 健康状态,正常为 OK |
| Temp(C) | 芯片温度 |
| Npu(%) | NPU 利用率 |
| Memory-Usage(MB) | 显存使用 / 总显存 |
C API 核心函数
#include "rknn_api.h"
rknn3_init(); // 初始化
rknn3_find_devices(); // 查找设备
rknn3_load_model(); // 加载模型
rknn3_session_init(); // 创建会话
rknn3_session_run(); // 同步推理
rknn3_session_run_async(); // 异步推理
rknn3_session_wait(); // 等待异步完成
rknn3_session_stop(); // 停止会话
rknn3_destroy(); // 销毁资源OpenAI 兼容 API
rkllm3-server 封装了标准 OpenAI API,支持任何兼容 OpenAI SDK 的框架直接接入:
| 端点 | 方法 | 说明 |
|---|---|---|
/v1/models | GET | 列出可用模型 |
/v1/chat/completions | POST | 对话推理 |
