BLLM:让更多的大模型原生跑在 RDK BPU 上
BLLM(BPU LLM)今日开源,v0.1.0 发布。它是面向 D-Robotics RDK S100 / S100P / S600 的
C++17 端侧大语言模型 / 多模态运行时——把已编译的 .hbm 图直接跑在板载 BPU(hbDNN / hbUCP)上,
自带 KV / SSM 缓存、采样器与解码循环,不依赖任何额外的大模型 SDK。
仓库地址:https://github.com/ruisv/bllm
效果展示 ( Qwen3.5-0.8B(混合 SSM)在 RDK S100P BPU 上原生流式对话)

核心特性
-
原生 BPU 推理。 直接驱动
.hbm,无需 OpenExplorer OE-LLM 之类的第二套运行时。 -
稠密 + 混合双架构。 覆盖 Qwen2.5-1.5B/7B、DeepSeek-R1-Distill、InternLM2、GLM-Edge、Phi-4-mini
等稠密文本模型;更支持 Qwen3.5-0.8B 混合 Gated-DeltaNet / SSM——严格 100% 落 BPU,约 21 tok/s,
这是纯注意力运行时结构上做不到的。
- 多模态。 Qwen2.5-Omni 的文本 + 图像 + 音频 + 视频;媒体可传文件路径或原始数组,相机 / 麦克风
零拷贝实时流式,边采集边编码进 KV 缓存。
-
一行式会话。
bllm.load(model)返回统一会话,内置 C++ 分词器、ChatML 模板、流式输出、多轮对话。 -
完整采样。 greedy / temperature / top-k / top-p / min-p / typical-p,以及重复、频率、存在惩罚,
可复现。
- 生产级能力。 困惑度、异步提交、提示缓存(KV+SSM 状态存取,逐位一致复现)、停止串(命中即提前
停止)、以及与视觉流水线共享单 BPU 核的优先级与时间片控制。
与官方 OE-LLM 运行时的区别
D-Robotics 官方提供了闭源的 OE-LLM 板端运行时(libxlm.so)。BLLM 不是它的封装,而是构建在
板子通用 hobot 栈之上的开源原生替代运行时——在对齐官方可用生成能力的基础上,补齐了官方在结构
上不具备的几项能力。核心差异如下(均为同一块 .hbm 上的实测结论):
| 维度 | 官方 OE-LLM 运行时(libxlm) | BLLM(本项目) |
|—|—|—|
| 开放性 | 闭源 | 开源,Apache-2.0 |
| 运行时依赖 | 在板载栈之上自带一套 libdnn / libhbucp,属第二套版本锁定的运行时 | 直接构建在板子通用 hobot 运行时上,单一运行时,无双运行时 ABI 风险 |
| 安装 | 需引入 OE-LLM SDK | 一次 conda install,无额外 SDK 依赖 |
| 架构覆盖 | 面向注意力 prefill / decode 双图 | 稠密注意力 + Qwen3.5 Gated-DeltaNet / SSM 混合架构(100% 落 BPU) |
| 模型范围 | 官方现成清单 | 官方清单,另可驱动 Phi-4-mini、GLM-Edge、Qwen3 等 |
| 文本向量 | 无编码器入口 | 支持 |
| 停止串 | 无中途取消,只能生成到 eos 后裁剪 | 命中即提前停止,省算力 |
| 同 .hbm 吞吐 | 基准 | 相当(逐模型实测对齐) |
一句话:稠密文本模型上,BLLM 与官方运行时吞吐相当;而在混合架构、文本向量、提前停止、单运行时与
开源可扩展性上,BLLM 提供了官方运行时之外的选择。二者都跑在同一块 BPU、消费同样的 .hbm。
快速上手
板上安装:
conda install -c https://mirrors.ruis.ai/conda -c conda-forge bllm
一行加载,流式对话:
import bllm
llm = bllm.load("/path/to/qwen3.5-0.8b")
for chunk in llm.stream_chat("用一句话介绍北京"):
print(chunk, end="", flush=True)
裸 .hbm 也能直接吃,运行时自动合成清单:
llm = bllm.load("Qwen2.5_1.5B.hbm", tokenizer_dir="Qwen2.5_1.5B_config/")
print(llm.chat("你好"))
C++ 侧对应 bllm::NativeLlm / bllm::NativeVlm,find_package(bllm) 即可链接。
演示
仓库 README 顶部附有实机流式对话录屏:Qwen3.5-0.8B 在 RDK S100P 上中英文对话,约 14 tok/s,
全程 100% 在 BPU 上。
支持的模型
| 类型 | 模型 |
|—|—|
| 稠密文本 | Qwen2.5 1.5B / 7B、DeepSeek-R1-Distill-Qwen 1.5B / 7B、InternLM2-1.8B、GLM-Edge、Phi-4-mini |
| 混合 SSM | Qwen3.5-0.8B(原生独有) |
| 多模态 | Qwen2.5-Omni-3B(文本 / 图像 / 音频 / 视频) |
BLLM 消费成品 .hbm + 分词器配置;模型转换是离线流程,不在本仓范围。
与视觉共享 BPU
S100 / S100P 单 BPU 核,LLM 与视觉会争用同一队列。BLLM 提供优先级与时间片控制:配合 .hbm 编译期的
max_time_per_fc,同驻检测器的 p99 延迟可从 41 ms 降到约 3 ms(383 FPS),而 LLM 空载时几乎不受影响。
参与
-
欢迎 Star、试用、提 Issue 与 PR
License:Apache-2.0。