llama.cpp b11188修复旧版GLSLC的Vulkan构建失败
针对不支持cooperativeMatrix API的旧版GLSLC,llama.cpp新版本增加GGML_VULKAN_COOPMAT_GLSLC_SUPPORT宏检查和预处理条件,让Intel FA着色器在旧工具链上也能编译。
AI解读:这次更新解决的是一个很具体的构建报错:有些旧版GLSLC编译器没有cooperativeMatrix API,llama.cpp的Vulkan后端会因此编译失败。
修复方式不复杂:加一个GGML_VULKAN_COOPMAT_GLSLC_SUPPORT宏判断,在编译Intel FA着色器时绕开对cooperativeMatrix的依赖;同时在创建阶段就过滤掉不支持的FA两阶段kernel,不再等到运行时出问题。另一个改动是把Intel FA着色器指针创建的锁挪进CM1编译预处理条件里。
受影响的主要是用Vulkan后端、又碰巧装了旧版GLSLC的开发者和打包者。他们现在不用为了跑通llama.cpp去专门升级整个Vulkan SDK,或者手动改CMake配置。
需要留意的是,这次只解决构建层面的兼容性,并不代表旧GPU或旧驱动就能跑满性能——过滤掉的那些FA kernel意味着部分加速路径在旧工具链下不会被启用。
llama.cpp发布b11188版本,修复了旧版GLSLC因不支持cooperativeMatrix API而导致的Vulkan构建失败问题(对应issue #29373,PR #29409)。
补丁包含三处改动:在Intel FA着色器编译时增加GGML_VULKAN_COOPMAT_GLSLC_SUPPORT宏检查;在创建前增加预处理条件,过滤掉不支持的FA两阶段kernel;把Intel FA着色器指针创建的lock_guard移到CM1编译预处理条件下面。
该版本照常提供各平台预编译包,包括macOS Apple Silicon(arm64)与Intel(x64)、iOS XCFramework、Ubuntu x64/arm64/s390x的CPU与Vulkan构建、CUDA 12.8和 13.4、ROCm 10.0、OpenVINO 2026.4、SYCL FP32/FP16、Linux arm64 Snapdragon(CPU、Adreno GPU、Hexagon NPU)、Android arm64及Snapdragon变体、Windows x64与arm64的CPU、OpenCL Adreno、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm构建,以及UI包。
发布说明中标注macOS Apple Silicon的KleidiAI启用版本为DISABLED,openEuler各构建(x86 310p、x86 910b ACL Graph、aarch64 310p、aarch64 910b ACL Graph)同样为DISABLED。