llama.cpp b12248将Vulkan GROUP_NORM工作组改为二维以规避设备计数上限
该项目在发布说明中称,此项改动(#31930)把GROUP_NORM的工作组划分为二维,以绕开maxComputeWorkGroupCount限制,并改用已有宏实现。
AI解读:llama.cpp发布b12248版本,主要代码改动涉及Vulkan后端的GROUP_NORM算子。
发布说明称,改动把工作组划分为二维,用于规避maxComputeWorkGroupCount上限;提交信息显示实现时换用了已有宏。
该改动的影响范围限于使用Vulkan后端的构建;发布页同时提供macOS、Linux、Windows、Android等平台的预编译包,其中Vulkan包覆盖Ubuntu x64/arm64与Windows x64/arm64。
llama.cpp发布b12248版本,发布说明列出的主要改动是Vulkan后端:将GROUP_NORM的工作组划分为二维,以规避maxComputeWorkGroupCount限制(PR #31930)。
发布说明的提交信息称,该实现“替换为已有宏”。
改动内容与适用范围
根据发布说明,问题出在Vulkan设备对工作组数量的上限约束maxComputeWorkGroupCount;改动方式是把GROUP_NORM的workgroup从一维拆分为二维来绕开该上限,并在实现中复用了项目已有的宏。
这一改动针对Vulkan后端。该版本同时提供Ubuntu x64/arm64和Windows x64/arm64的Vulkan预编译包,使用这些包或自行以Vulkan后端构建的用户会涉及该改动。
- 改动项:Vulkan GROUP_NORM工作组改为二维
- 目的:规避maxComputeWorkGroupCount限制
- PR编号:#31930
- 实现说明:替换为已有宏
同版本发布的其他构建
b12248的发布页还列出了多平台预编译产物,包括macOS Apple Silicon与Intel、iOS XCFramework、Ubuntu的CPU/CUDA 12/CUDA 13/ROCm 10.0/OpenVINO/SYCL构建、Windows的CPU/CUDA/Vulkan/OpenVINO/SYCL/ROCm构建,以及Android arm64与Snapdragon版本。
发布页显示两项被标记为DISABLED:macOS Apple Silicon的KleidiAI启用版本(PR #23780)和openEuler相关构建(PR #23705)。发布说明未给出本次Vulkan改动在具体设备上的性能或兼容性数据。
- 提供Vulkan包:Ubuntu x64、Ubuntu arm64、Windows x64、Windows arm64
- 标记DISABLED:macOS arm64 KleidiAI版本(#23780)、openEuler构建(#23705)
- 未附本次改动的实测性能数据