开源llama.cpp Releases·2026年9月5日

llama.cpp b10726发布:针对大Batch提示词处理的IQ模型AVX2加速

该版本新增批量GEMM内核并优化IQ Panel解码布局,以提升大批次提示词处理速度,同时为所有主要平台提供预编译二进制。

AI解读:这条新闻对在CPU上运行IQ量化模型的用户有意义,尤其是用大batch size处理提示词的场景。llama.cpp本次发布的b10726版本专门针对AVX2指令集优化了IQ(如IQ2_XXS、IQ3_XXS等基于网格的量化)模型中的矩阵乘法:核心改动是新增了批量GEMM内核,并重构了IQ Panel的解码逻辑,改为单源gather布局并向量化交错处理,还降低了触发加速的阈值。这些技术调整的直接结果是,当一次要处理大量token(如批量推理或长提示)时,CPU计算能更充分地利用SIMD通道,减少数据搬运和重复解码。普通用户无需立即行动,只需升级到b10726或后续版本,即可在支持的CPU上自动获得速度提升。需要注意的是,本次优化仅覆盖AVX2平台,且官方未提供具体性能提升的百分比数字,实际收益取决于模型类型和硬件,开发者可以参考实现来适配自己的推理优化。

llama.cpp项目发布了新版本b10726。本次更新的主题是“AVX2:加速IQ模型的大batch size提示词处理”(AVX2: Speed up large batch size prompt processing of IQ models),合并了PR #27402。改动由github-actions[bot] 发布,提交内容中包含社区成员与Georgi Gerganov的共同修改。

技术改动:批量GEMM与IQ Panel解码优化

该版本实现了几项底层优化:为网格类IQ量化(grid IQ quants)引入批量GEMM(Batched gemm);针对IQ Panel解码进行了重构,采用单源gather布局(single-source gather layout),加入门控偏置(gate bias)并向量化交错(vectorize interleave);同时降低了触发加速的阈值。此外,新增了ggml_gemm_iqp_8x8_q8_K_p4内核,并移除了临时的gather buffer。

代码也进行了整理:IQ Panel相关代码被移出repack流程,转移到新的iqp.cpp文件;移除了ggml_cpu_iqp_scratch_offset和ggml_cpu_iqp_src1_conv_size;重命名并移动了若干宏定义。提交还添加了一个iqp_rows工作缓冲区,但随后又通过revert撤销,最终添加了NUMA回退支持(NUMA fallback)。

测试方面,新增了 10 行batch的测试,覆盖所有grid IQ类型的IQP;将支持检查中的assert替换为返回false;并移动了IQP mul_mat_id测试。

  • 新增avx2批量GEMM内核,优化大batch下的矩阵计算
  • 重构IQ Panel解码:单源gather、门控偏置、向量化交错,并降低速度提升触发的batch阈值
  • 新增ggml_gemm_iqp_8x8_q8_K_p4内核,移除gather buffer
  • IQ Panel代码迁移至iqp.cpp,调整宏定义与函数命名
  • 引入NUMA回退以兼容多插槽服务器
  • 增加 10 行batch测试,覆盖所有网格IQ类型

发布构建与平台覆盖

b10726为多种平台提供了预编译二进制,涵盖macOS(Apple Silicon arm64、Intel x64)、iOS XCFramework、Linux(Ubuntu x64/arm64/s390x CPU、Vulkan、ROCm 7.14、OpenVINO、SYCL FP32/FP16)、Android arm64 CPU、Windows(x64/arm64 CPU、OpenCL Adreno、CUDA 12.4/13.3/13.4、Vulkan、OpenVINO、SYCL、ROCm 7.14)以及UI资源包。

部分构建仍处于禁用或预览状态:macOS Apple Silicon的KleidiAI优化构建被禁用(关联PR #23780);openEuler相关构建(x86 310p、x86/arm64 910b ACL Graph)也被禁用(关联PR #23705);Windows arm64 CUDA 13.4构建标记为preview。这些限制意味着上述场景下用户需要依赖其他构建或自行编译。

  • 提供macOS(arm64/x64)与iOS框架构建
  • 提供Linux多架构CPU构建,以及Vulkan、ROCm、OpenVINO、SYCL后端
  • 提供Windows CPU(x64/arm64)、CUDA 12/13、OpenCL Adreno、Vulkan、OpenVINO、SYCL构建
  • 提供Android arm64 CPU构建
  • 部分构建(KleidiAI、openEuler变体)被禁用,Windows arm64 CUDA 13为预览版

信息来源

llama.cpp Releases原始来源