开源llama.cpp Releases·2026年9月5日

llama.cpp b10737发布:修复qwen4exp序列状态恢复与CUDA中止问题

新版本修复了Qwen4Exp的序列复制、块位置键控、多模态输入以及CUDA中止等缺陷,并为合成测试模型添加PLE以覆盖状态往返恢复。

llama.cpp发布b10737版本,修复Qwen4Exp架构的序列复制(seq_cp)、块位置键控、多模态(mtmd)输入和CUDA中止问题,并新增针对序列状态保存/恢复的回归测试。

该版本同时禁用了qwen4exp对张量并行(-sm tensor)的支持,因为此前实现存在缺陷。

主要修复内容

根据发布说明,本次更新包含 `-kvu` NaN折叠修复,以及索引器缓存中ext.x/ext.y字段恢复的修复。

开发者在memory-hybrid-idx上实现了 `set_input_qsa` 方法,此前该实现位于context中,现在与llama_kv_cache_context处理set_input_kq_mask的模式保持一致。

为qwen4exp添加了位置嵌入(PLE)的合成测试模型,以便状态测试能覆盖 `has_cell_ext()` 逻辑——该逻辑要求n_pos_per_embd() > 1 或存在PLE头。

测试与限制

新增测试验证序列状态在保存/恢复往返后保持完整:保存序列 0、擦除、再从blob恢复并再次保存,要求两个blob匹配。

说明指出该测试在master上对qwen4exp也能通过,因此不能证明ext.x/ext.y的丢失修复有效——要触发该问题需要二维mrope内容。

为合成qwen4exp添加PLE后,如果移除状态读取时的ext_set恢复,198 个字节的差异会出现在偏移 282092 处。

加载带PLE的模型需要两个额外修复:per_layer_token_embd的行数推导逻辑,以及拒绝在完整注意力层上使用带PLE的模型(此前会导致空指针崩溃)。

构建与平台支持

b10737提供macOS Apple Silicon/Intel、iOS XCFramework、Linux(Ubuntu x64/arm64/s390x,Vulkan、ROCm 7.14、OpenVINO、SYCL FP32/FP16变体)、Android arm64、Windows(x64 CPU、arm64 CPU、OpenCL Adreno、CUDA 12.4/13.3、Vulkan、OpenVINO、SYCL、ROCm 7.14)等平台的预编译二进制。

macOS Apple Silicon的KleidiAI支持当前禁用,openEuler相关构建同样禁用。

信息来源

llama.cpp Releases原始来源