开源llama.cpp Releases·原文 2026年9月20日

llama.cpp b11064让Metal后端支持任意hc的dsv4_hc_pre算子

此前该算子把hc硬编码为 4,其他取值会被supports_op拒绝并回退到CPU;新版本改为以函数常量传参并按n_hc生成Metal管线变体。

llama.cpp发布b11064版本,其中一项改动是让Metal后端支持dsv4_hc_pre算子的任意hc取值。

根据提交说明,dsv4_hc_pre的kernel此前通过constexpr把hc硬编码为 4,并与simd_shuffle一起使用,因此任何其他hc取值都会被supports_op拒绝,算子回退到CPU执行。

提交指出,Kimi-K3使用dsv4_hc_pre时,hc等于跨层残差栈中banked checkpoints的数量,而该数量随层索引增长。

修复方式是把n_hc作为函数常量FC_DSV4_HC传入,并生成针对每个n_hc的Metal管线变体,同时在两个pre kernel中循环处理它,改为直接加载。

提交还新增了test-backend-ops用例,覆盖hc = 1、2、3、5、8 和 65,包含gated与非gated两种情况。

该提交标注Assisted-by: pi:llama.cpp/Qwen3.8-27B。

信息来源

llama.cpp Releases原始来源