lucebox-hub
消费级 GPU 本地 LLM 推理加速引擎,手写 CUDA/HIP 内核 + 投机解码实现 3-10
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
消费级 GPU 本地 LLM 推理加速引擎,手写 CUDA/HIP 内核 + 投机解码实现 3-10
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你花了两万块配了一台 RTX 3090 主机,跑同样的 27B 参数大模型,推理速度却只有专业服务器的六分之一。你看着 GPU 利用率曲线,像坐过山车一样忽高忽低——Prefill 时飙到 100%,Decode 时跌到个位数。
这不是你的错。通用深度学习框架追求的是「够用就好」,不会为某一张具体的显卡写专门的代码。llama.cpp 把模型跑起来了,但那些藏在 GPU 里的专用计算单元,大多数时候都在睡觉。
Lucebox 正是为解决这个矛盾而生:不是又一个通用推理框架,而是为特定显卡手写的推理引擎。它由 Luce-Org 团队维护,GitHub 获星 2378,聚焦消费级 NVIDIA/AMD GPU 上的高速本地大模型推理,所有优化都来自对硬件架构的深度理解,而非玄学调参。

图1:Lucebox 项目概览
现代 LLM 推理分为两个阶段:Prefill(预填充) 处理输入 Prompt,计算量与 token 数量成正比,通常能吃满 GPU 算力;Decode(解码) 逐 token 生成输出,由于 KV 缓存、内存带宽等因素,GPU 算力利用率常常低于 20%。
标准 llama.cpp 运行时在这两个阶段都使用通用 kernel。以 RTX 3090(GA102/Ampere sm_86)跑 Qwen 3.5-27B 为例:Prefill 约 11,247 tok/s,Decode 约 267 tok/s,Decode 阶段的算力利用率惨不忍睹。
学术界提出了两条优化路线:Speculative Decoding(推测解码) 用小模型快速猜测,大模型验证,实现 3-5 倍 Decode 加速;Speculative Prefill(推测预填充) 将 Prefill token 分批处理,与 Decode 并行执行,减少 TTFT(Time To First Token)。然而这些技术在消费级 GPU 上的实现细节——如何利用 tensor core、如何管理 KV 缓存、如何在有限显存中存放下专家权重——都需要对硬件有深入理解。
Lucebox 团队正是从这个痛点出发,选择了一条「笨」路:为每一代 GPU 架构手写 CUDA/HIP kernel,把每一滴硬件算力都榨出来。

图2:DFlash 推测解码方案卡片
Lucebox 的推理引擎由四套相互独立的优化模块构成,每套模块针对一个具体的性能瓶颈,可单独启用,也可组合使用。
Qwen 3.5-0.8B 这样的小模型,LLM 推理被切割成 24 个 CUDA kernel 执行,每次 layer 之间 GPU 都需要等待同步信号,造成大量流水线气泡。Megakernel 将 24 个 layer 融合为一个持久化调度(Persistent CUDA) kernel,GPU 一次启动便完成全部推理。
在 RTX 3090 上,Megakernel 实现了 413 tok/s Decode(vs llama.cpp BF16 的 267 tok/s)和 21,347 tok/s Prefill(vs llama.cpp 的 11,247),能效比达到 1.87 tok/J(vs llama.cpp BF16 的 0.76 tok/J),功耗从 350W 降至 220W,节省 37%。

图3:Megakernel 优化方案卡片
DFlash(Draft Flash)是 Lucebox 的推测解码引擎,使用 Qwen3.6-27B 作为 draft model,在 RTX 3090 上实现 3.43 倍 Decode 加速(Qwen 3.5-27B + DDTree),Qwen 3.6-27B + PFlash 组合可达 5.6 倍加速。
与 naive 推测解码不同,DFlash 采用了**动态树结构(DDTree)**组织 draft 候选,避免了线性草稿链的验证瓶颈。draft model 的权重以 GGUF 格式量化存储(HuggingFace 上有预训练版本),无需重新训练原生 draft model,降低了使用门槛。
PFlash(Prefill Flash)是推测预填充引擎,在 128K 长上下文场景下实现了 5.4 倍 Prefill 加速(Laguna-XS.2 33B)。其核心思路是将 Prefill token 分批处理,每处理完一个 batch 后立即开始 Decode,而不是等全部 Prefill 完成后才开始。对需要处理长文档、长代码库的场景,PFlash 可以将 TTFT 从分钟级压缩到秒级。

图4:PFlash 推测预填充方案卡片
对于 MoE(Mixture of Experts)架构的模型(如 Qwen3.5/Qwen3.6 MoE),Experts 权重通常远大于单卡显存上限。Luce Spark 通过**动态专家缓存(Expert Cache)**机制,将热点专家保留在 GPU 显存,冷门专家卸载到系统内存,按实际流量自动调优热/冷专家分割比例。
配合 --spark 参数,Luce Spark 可以自动完成专家缓存大小调优、放置策略学习和持久化(生成 .gguf.spark.csv 放置配置),Decode 性能接近全显存状态。

图5:Luce Spark MoE 专家卸载方案卡片
Lucebox 推理引擎的核心是 C++17 编写的高性能 kernel,依赖 CUDA 12+(NVIDIA)或 HIP 7+(AMD),不依赖 PyTorch、TensorRT 或其他通用框架。这使得部署后的二进制文件极其轻量,启动速度快,内存占用稳定可预测。
项目的仓库结构清晰:server/(DFlash 推测解码服务器)、optimizations/megakernel/(Megakernel 基准测试)、optimizations/pflash/(PFlash 引擎)、harness/(客户端工具集)、share/(预编译 GGUF 权重)。代码使用 uv 管理 Python 环境,ruff 做 lint/type 检查,mypy 做类型检查,整体工程化水平较高。
Lucebox 经过实测的硬件覆盖范围相当广:RTX 3090(4.84x DFlash 加速,基准参考)、RTX 5090(~205 tok/s,4.84x Megakernel)、DGX Spark / GB10(NVFP4 精度)、RTX 2080 Ti 22GB(~53 tok/s DFlash)、RTX 4090(社区 WSL2 测试)、Ryzen AI MAX+ 395(~37 tok/s HIP)、Radeon RX 7900 XTX(~50 tok/s HIP)。

图6:RTX 5090 Blackwell 架构加速效果
需要注意的是,Lucebox 对显存要求较高——运行 27B 模型通常需要 24GB+ 显存。RTX 3090 24GB、RTX 5090 32GB 均为理想选择。

图7:RTX 3090 Ampere 架构基准测试
Lucebox 是纯命令行工具,没有 Web UI 或 API Dashboard,适合有技术背景的用户。部署路径有两条:
路径一:Docker(推荐,隔离环境):项目提供了 CUDA 12.8 和 ROCm 7 两个预构建多阶段 Dockerfile,配合 docker-bake.hcl 可按 GPU 架构定制镜像。构建 fat-binary 时需要指定 CUDA 架构列表,每个架构增加约 50-200MB 镜像体积和 3-5 分钟 nvcc 编译时间。
路径二:源码编译(灵活性更高):server/ 目录的 CMake 构建需要 CUDA Toolkit 12+、CMake 3.18+、Ninja、GCC/Clang。optimizations/megakernel/ 额外需要 PyTorch 2.0+(仅用于编译 CUDAExtension,不参与推理)。

图8:Docker 多架构构建支持
适用性有限:Lucebox 的所有优化都针对特定模型(主要是 Qwen 系列)和特定硬件架构开发。切换到其他模型(如 Llama、Mistral)可能无法获得同等加速效果。
显存门槛高:27B 模型需要 24GB+ 显存,RTX 3090 几乎是最低门槛。16GB 显存的 RTX 4060 Ti 用户基本与 27B 大模型无缘。
调试成本高:高度手写的 CUDA kernel 意味着如果遇到兼容性问题,用户需要具备 CUDA 调试能力才能定位。
缺乏生产级功能:当前版本没有模型热加载、多租户、Prometheus 监控等生产环境常见功能,更接近「高性能实验工具」而非「生产推理服务」。
过去几年,深度学习框架朝着「一个框架跑遍天下」的方向演进,牺牲的是对特定硬件的极致优化。Lucebox 的出现代表了另一种思路的回归:与其在一个通用框架上做 1% 的优化,不如为每张显卡写专门的内核。
在消费级 GPU 上运行大模型的浪潮才刚刚开始。当 RTX 5090、AMD RDNA3+ 架构的能效比继续提升,当本地大模型推理从「能跑」进化到「跑得快」,像 Lucebox 这样专注于特定硬件深度优化的项目,将变得越来越重要。