llama.cpp b10908修复Metal后端IQ矩阵乘内核空转线程
该版本针对ne00=4 的剩余iq mul_mv内核修复空闲线程问题,并整理行切片偏移逻辑;K-quants存在同类问题但需单独改动。
AI解读:llama.cpp发布b10908版本,主要改动集中在Apple Metal后端:修复ne00=4 条件下剩余iq mul_mv内核中的空闲线程问题。只有split路径使用N_R0_ _SPLIT = 8,说明该修复的适用条件被明确限定在特定形状与路径上。
同一批Metal改动还顺带整理了IQ矩阵乘内核的行指针与行切片偏移处理:把对src0行指针的偏移只做一次,并把行切分直接折进offset0。对写内核的人来说,这类改动能减少重复计算路径;对普通使用者,它不会改变下载哪一个预编译包。
K-quants存在同样的空闲线程问题,但线程lane映射不同,因此被留到另一次独立改动。换句话说,这次修复不是覆盖全部量化类型,权重使用K-quants的Metal用户仍要等待后续提交。
b10908的发布页面同时列出了macOS、iOS、Linux、Windows、Android的预编译包与UI包,涵盖CPU、Vulkan、ROCm 10.0、OpenVINO 2026.3.1、SYCL、CUDA 12.4/13.3/13.4等后端;macOS Apple Silicon的KleidiAI构建和openEuler构建被标记为DISABLED。以上均来自发布摘要与下载链接,未包含性能提升数据。
llama.cpp发布b10908。根据发布说明,本次改动位于Metal后端:修复ne00 = 4 时剩余的iq mul_mv内核中的空闲线程(idle threads)问题,并说明只有split路径使用N_R0_ _SPLIT = 8。
发布说明指出,K-quants存在同样的空闲线程问题,但lane映射不同,因此被留作单独的改动。
同一批Metal改动还包括:在iq mul_mv内核中只对src0行指针做一次偏移,因为q2、dh、sc、qh和signs都派生自xr,行切片偏移只需施加到xr上。
发布说明还写明,将iq mul_mv的行切分折进offset0:在初始化源指针之前先计算row0和row1,把行切片直接作用于offset0,使x及其派生指针保持在既有路径上,行切分偏移只应用一次。
b10908发布页面同时提供网站、证明(Attestations)和多个平台的预编译包。以下为发布页面列出的构建目标,未在来源中附带各构建的性能或功能差异说明。
b10908提供的预编译包
发布页面列出的下载项覆盖macOS/iOS、Linux、Android、Windows,以及一个UI包。
其中macOS Apple Silicon(arm64)的KleidiAI enabled构建被标记为DISABLED,并链接到PR 23780;openEuler的构建同样被标记为DISABLED,并链接到PR 23705。
来源中的Linux列表在Ubuntu s390x(CPU)一项处被截断,因此不对该平台之后的条目作完整列举。
- macOS/iOS:macOS Apple Silicon (arm64)、macOS Intel (x64)、iOS XCFramework;macOS Apple Silicon(arm64, KleidiAI enabled)为DISABLED。
- Linux:Ubuntu x64 (CPU)、Ubuntu arm64 (CPU)、Ubuntu s390x (CPU)、Ubuntu x64 (Vulkan)、Ubuntu arm64 (Vulkan)、Ubuntu x64 (ROCm 10.0)、Ubuntu x64 (OpenVINO 2026.3.1)、Ubuntu x64 (SYCL FP32)、Ubuntu x64 (SYCL FP16)。
- Android:Android arm64 (CPU)。
- Windows:x64 (CPU)、arm64 (CPU)、arm64 (OpenCL Adreno)、x64 (CUDA 12)、CUDA 12.4 DLLs、x64 (CUDA 13)、CUDA 13.3 DLLs、arm64 (CUDA 13)、CUDA 13.4 DLLs、x64 (Vulkan)、x64 (OpenVINO)、x64 (SYCL)、x64 (ROCm 10.0)。
- openEuler:openEuler x86 (310p)、openEuler x86 (910b, ACL Graph)、openEuler aarch64 (310p)、openEuler aarch64 (910b, ACL Graph),整体标记为DISABLED。
- UI:llama-b10908-ui.tar.gz。