luce-org/lucebox 仓库于 2026 年 11 月 6 日引入了提交 f3cc3ec9。其标题为 perf(qwen4exp): fewer target launches in split decode(#937),这是一项性能改进:在把解码拆分到两块 GPU 上运行的 Qwen 系列路径中,减少了目标(target)GPU 原本每一层都要发起的内核启动次数。该变更涉及 18 个文件,新增 993 行、删除 61 行。
lucebox 是一个在异构硬件和消费级 GPU 上运行 LLM 推测性推理(speculative inference)的服务器。它先生成一段较短的草稿,再由更大的模型来验证该结果;把性能各异的设备放进同一张图中协同使用,是这个项目的方向所在。本次提交的核心,是把某一层路由得到的 expert 求和推迟到下一层才汇合的功能。目标 GPU 负责下一层的注意力与路由器,expert GPU 负责路由到的 expert 计算,两者相互重叠执行。原有的做法是两块卡交替工作、各自空转掉大约三分之一的解码时间,这一点在说明中也有提及。不过,由于该路径会改变模型的算术运算,默认是关闭的,必须通过 LUCE_QWEN4EXP_LATE_EXPERTS=all 或 <a>-<b> 手动开启。
CUDA·HIP 后端方面的融合也有所增加。路由器的 GET_ROWS·SUM_ROWS·CLAMP·DIV 被合并为一次执行,共享 expert 的门控 sigmoid 与乘法被折入 MoE 合并内核,q8_1 量化行改为由下一次矩阵乘法直接读取,从而取消了单独的量化执行。提交信息称,按解码配置统计,目标 GPU 的每层内核数从 45.4 降到约 36,late-expert 分离解码的解码速度快了 1.5~2.5%。在 AMD RDNA4(gfx1151)上新增了短行 Q8_0 MMVQ 内核,据称在 1~8 列区间快 1.5~3 倍;贪心解码也改为在 GPU 上计算 argmax,只读取 token ID,而不再读取整个 logits 行。
这些数字都只是提交信息中给出的值,并非独立测量结果。由于 late-expert 路径会改变算术运算,一旦开启,输出可能与原来不同;各项融合同样仍保留在开关标志之后。作为交换,新增了 test_qn_split_fusions 测试,用来确认融合是否真正生效以及 argmax 的并列处理规则,并已纳入 CI。把这次提交理解为「把针对各硬件手工调校的优化以代码和测试的形式留存下来」是正确的,而默认配置下的性能究竟会有多大变化,目前判断为时尚早。