llama.cpp b10938为Vulkan后端加互斥锁,绕过英伟达驱动队列提交缺陷
llama.cpp发布b10938版本,主改动是在Vulkan后端为queue submit加互斥锁,原因是同一VkDevice上两个队列同时提交会破坏内部同步,该缺陷来自英伟达驱动、修复前一直保留此变通方案。
AI解读:llama.cpp在b10938版本里给Vulkan后端的队列提交加了一把互斥锁。触发原因不是llama.cpp自己的代码,而是一个驱动缺陷:同一个VkDevice上的两个队列同时提交,可能破坏驱动内部的同步逻辑。
这意味着使用Vulkan后端跑推理的人,这个版本会用一点并行度换取稳定性。官方措辞是“在修复之前”先这么处理,说明它属于临时变通,驱动修好后大概率会撤掉。
发布页同时列出了macOS、iOS、Linux、Android和Windows的预编译包,Vulkan版本覆盖Ubuntu x64/arm64与Windows x64。给Vulkan用户的信息很直接:升级到b10938,或接受可能出现的同步异常。
这份发布说明没有给出缺陷复现条件、受影响的驱动版本号,也没有性能影响的量化数据,所以现在无法判断它具体拖慢多少、哪些显卡会中招。来源仅为发布说明,未附带测试数据。
llama.cpp发布b10938版本,唯一列出的改动位于Vulkan后端:为queue submit加互斥锁(mutex),以绕过英伟达驱动的一个缺陷。
该版本的发布说明(PR #28830)描述,缺陷表现为同一个VkDevice上的两个队列同时提交时,会破坏驱动内部的某些同步机制。在驱动修复之前,llama.cpp选择用互斥锁把队列提交串行化。
发布说明把这一处理定性为workaround(变通方案),并明确表示会持续到驱动缺陷被修复。除该改动外,发布页未列出其他功能变更。
发布页提供的平台构建包
b10938同时发布了多平台预编译包。macOS提供Apple Silicon(arm64)与Intel(x64)版本,以及iOS XCFramework;其中启用KleidiAI的macOS Apple Silicon构建标注为DISABLED。
- Linux:Ubuntu x64/arm64/s390x CPU,Ubuntu x64/arm64 Vulkan,Ubuntu x64 ROCm 10.0、OpenVINO 2026.3.1、SYCL FP32与SYCL FP16。
- Windows:x64/arm64 CPU,arm64 OpenCL Adreno,x64 CUDA 12(含 12.4 DLLs)、CUDA 13(含 13.3 DLLs)、arm64 CUDA 13(含 13.4 DLLs),x64 Vulkan、OpenVINO 2026.3.1、SYCL、ROCm 10.0。
- Android:arm64 CPU。openEuler相关构建标注为DISABLED。另提供UI包。
已知信息与缺口
发布说明没有说明该驱动缺陷会影响哪些英伟达驱动版本、哪些GPU,也没有给出互斥锁带来的性能开销数据。
由于来源只是发布说明而非完整技术分析,目前能确认的仅是:改动已被合并进b10938,适用于Vulkan后端,且被描述为临时措施。