llama.cpp 项目发布了构建版本 b10751,其中引入了针对 CUDA 上 MoE(混合专家)加权专家归约的融合内核。该优化用单个加权归约内核替换了之前运行两个物理内核的基线方案,以减少中间全局内存流量。
- 融合内核通过一个运行时-k 内核处理 k=2..15 个专家,支持无缩放和缩放专家权重图。
- 它匹配结构化的操作序列、形状、步幅以及从左到右的 ADD 链,同时保持相同的归约顺序。
- 分配器集成确保在写入融合目标之前,专家、路由器权重和可选缩放值保持活跃状态。
- 无法识别或不安全的图回退到现有的逐操作路径,可通过 GGML_CUDA_MOE_WEIGHTED_REDUCTION=0 禁用该路径。
此更改通过最小化专家组合阶段的内存带宽使用,提升了 CUDA 上 MoE 模型的性能。