llama.cpp b10777发布:优化SYCL后端Q4_K矩阵乘法,减少多列MMVQ重复计算
新版本通过权重解包复用与双子组激活复用,提升SYCL上Q4_K量化模型的推理效率,并提供大量平台的预编译二进制。
AI解读:llama.cpp的新版本b10777主要针对使用SYCL后端的用户,改进了量化模型Q4_K的矩阵乘法性能。此前在处理多列输出时,SYCL会重复解包权重进行计算,浪费带宽;这次提交 #27062 引入了权重解包后的复用,并针对小规模输出(如N=2 到 4)优化了子组内激活的重复使用,从而减少冗余计算。对在Intel显卡或支持SYCL的设备上运行本地大模型的开发者来说,这能提升推理吞吐量,尤其在处理批量较小的任务时。不过要注意,这项优化仅涉及Q4_K量化类型和SYCL路径,其他后端不受影响,且作者仅为代码提交者,未提供具体的性能数字。普通用户无需立即升级,但使用相关硬件的开发者可以尝试体验并观察实际效果。
llama.cpp发布b10777版本,主要集成一项针对SYCL后端的优化(PR #27062),目标是减少Q4_K量化模型在多列矩阵乘法(MMVQ)中的重复工作。
该提交由RaulAbejonDelgado合作完成,变更包括:对Q4_K权重解包进行优化,并在不同目标列间复用;对N=2 到 4 的小规模输出,通过子组在不同输出行间复用激活值。
修复了原先硬编码的magic number:现在改用宏Q4_K_MMVQ_ROW_PAIR_MIN_NROWS = 6272 来控制两行复用的适用条件,并添加了针对Q4_K MUL_MAT的测试,覆盖该阈值附近的性能表现。
发布说明还显示,macOS Apple Silicon (arm64) 的KleidiAI启用版本和openEuler的ascendsycl构建(310p/910b)已在本次发布中被禁用,分别对应pull request #23780 和 #23705。