llama.cpp b10995将Vulkan后端MUL_MAT_ID的BN/2尾处理改为无条件启用
该版本把BN/2设为BNover2的默认实现并作为BNover4的禁用回退,同时移除MUL_MAT_ID BN/2分支的启用开关;BN/4仍受enable_smaller_matrices控制,p.N路径未变。
AI解读:这条更新只动了一个很小的开关:Vulkan后端里MUL_MAT_ID的BN/2尾处理,以前需要额外条件才生效,现在默认就会走这条路。
受影响的是在Vulkan上跑llama.cpp的人,尤其是用AMD、Intel显卡或移动GPU的用户。他们不用再关心那个启用开关,代码路径会自己选更合适的BN/2。
但BN/4分支没被放开,仍然受enable_smaller_matrices控制,p.N路径也照旧。所以这不是全面提速,只是把一条原本要手动触发的路径变成默认。
目前没有公开的Benchmark数据说明这次改动快了多少,实际收益取决于模型形状和显卡。建议先把它当作代码路径的整理,而不是性能承诺。
llama.cpp发布b10995版本,本次改动集中在Vulkan后端。
变更内容为:将MUL_MAT_ID的BN/2尾处理设为无条件启用,BN/2同时作为BNover2的默认值和BNover4的禁用回退;MUL_MAT_ID的BN/2分支不再需要enable gate。
BN/4分支仍然由enable_smaller_matrices控制,p.N路径保持不变。
改动细节
根据发布说明,此次提交编号为 #28923,标题为“vulkan: make MUL_MAT_ID BN/2 tail unconditional”。
BN/2现在同时承担两个角色:作为BNover2的默认路径,以及作为BNover4被禁用时的回退。MUL_MAT_ID的BN/2分支原有的启用门槛被移除。
BN/4分支的状态没有变化,依旧受enable_smaller_matrices参数控制;p.N路径也未作调整。
- MUL_MAT_ID的BN/2分支:由门控改为无条件
- BN/2的新角色:BNover2默认值、BNover4禁用回退
- BN/4分支:仍受enable_smaller_matrices门控
- p.N路径:未改动
发布产物
b10995同时提供多平台预编译包,包括macOS Apple Silicon(arm64)、macOS Intel(x64)、iOS XCFramework以及Linux、Windows、Android和openEuler的构建。
Vulkan相关构建覆盖Ubuntu x64、Ubuntu arm64和Windows x64。macOS的KleidiAI启用版本标注为DISABLED,openEuler构建同样标注为DISABLED。
UI包单独提供tar.gz下载。
- macOS Apple Silicon arm64、macOS Intel x64、iOS XCFramework
- Ubuntu x64/arm64 Vulkan,Windows x64 Vulkan
- macOS KleidiAI启用版本与openEuler构建均标注DISABLED