llama.cpp b11265修复Vulkan MoE矩阵乘法瓦片选择
llama.cpp发布b11265版本,修复Vulkan后端在MoE分发网格中按总token数而非每专家行数选择matmul瓦片的问题;在Sarvam 30B、pp128场景下真实N为 6 而非 128,导致多数worker空转,慢速部分占整体任务 55%。
AI解读:在Sarvam 30B模型、pp128的设置下,这个真实N值是 6 而不是 128。选择器因此按约 6 个活跃行挑了l-瓦片,导致每组里大多数worker无活可干,时间被浪费在空转上。据发布说明,这部分慢速逻辑占整个任务的 55%。
如果你在Vulkan后端跑MoE模型并做批量推理,这次改动会减少无效等待;但发布说明没有给出修复后的加速比例,只说明了问题的来源和位置。普通CPU或CUDA用户不受此条改动直接影响。
llama.cpp发布b11265版本,其中一项改动是针对Vulkan后端的MoE(混合专家)感知矩阵乘法瓦片选择,对应PR #29182。
根据发布说明,mut_mul_id此前用总token数来选择matmul瓦片。但在MoE分发网格中,每个工作组的真实N值应当是分配给单个专家的行数。
发布说明举例:在Sarvam 30B模型、pp128的场景下,真实N为 6,而不是 128。选择器因此针对约 6 个活跃行选取了l-瓦片。
结果是每个工作组里的大多数worker没有任务可做,造成时间浪费。发布说明称,这部分慢速逻辑占整体任务的 55%。
b11265同时提供了macOS、iOS、Linux、Android、Windows以及openEuler等平台的预编译包,覆盖CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL、OpenCL Adreno等后端。