llama.cpp b10988发布:OpenCL后端按批量大小选择MoE专家矩阵乘,适配投机解码与MTP
llama.cpp在版本b10988中为OpenCL后端加入按路由数量选择MoE专家矩阵乘的逻辑,用于投机解码与多token预测场景,同时停止向填充的MoE激活槽写零。
AI解读:这次更新解决的是OpenCL后端跑MoE模型时的具体效率问题:专家矩阵乘(MoE GEMM)不再一招通吃,而是根据路由数量也就是批量大小来选,让投机解码和多token预测(MTP)这类一次算多个token的场景少做无用功。
另一个改向是停止往填充的MoE激活槽写零。填充槽本来就没有有效数据,之前写零是纯开销,现在省掉了,推理时的内存写压力会小一点。
受影响的主要是在Windows ARM64(OpenCL Adreno)等OpenCL路径上跑MoE模型的用户,二进制已经随b10988发布;但来源没有给出这次改动的性能提升数字,实际收益要看具体模型和硬件。
改动作者为Li He,提交说明提到重新措辞了Claude相关注释,属于日常代码维护,不涉及新模型或新功能。
llama.cpp发布b10988版本,其中OpenCL后端新增一项改动:在投机解码/多token预测(MTP)场景下,根据批量大小(提交说明中表述为路由数量)选择MoE专家矩阵乘(MoE expert matmul)。
同一提交还包含另外两项改动:预构建的q4_0 MoE GEMM现在受路由数量限制(gate on routing count),并停止向填充的MoE激活槽写入零。
该提交由Li He共同署名,提交信息提到重新措辞了Claude相关注释。
b10988随版本发布了各平台预编译二进制,包括macOS Apple Silicon(arm64)、macOS Intel(x64)、iOS XCFramework、Ubuntu x64/arm64/s390x(CPU)、Ubuntu x64/arm64(Vulkan)、Ubuntu x64(CUDA 12、CUDA 13、ROCm 10.0、OpenVINO、SYCL FP32/FP16)、Android arm64(CPU)、Windows x64(CPU、CUDA 12、CUDA 13、Vulkan、OpenVINO、SYCL、ROCm 10.0)、Windows arm64(CPU、OpenCL Adreno、CUDA 13)以及UI压缩包。
其中macOS Apple Silicon的KleidiAI版本被标记为DISABLED,openEuler相关构建(x86 310p/910b、aarch64 310p/910b)同样被标记为DISABLED。
来源为版本发布说明,仅包含提交标题与二进制下载列表,未提供性能数据或更详细的技术说明。