llama.cpp Releases更新于

[预发布 / 持续构建版本] b11430

[预发布 / 持续构建版本] hexagon: matmul 和 flash-atten 可扩展性更新(#29974) * hexagon: 面向行拆分多核的按头并行 flash_attn 分区 在行拆分模式下,每个核心计算每个 MUL_MAT 的输出行分片,但 flash_attn 此前是按 Q token(扁平 qrow 拆分)而非按头进行分区的。这迫使每个核心读取完整的 KV 缓存(全部 n_kv_heads),抵消了多核对…

预发布 / 持续构建版本:这是一个实验性构建版本,不是稳定发布版。

hexagon: matmul 和 flash-atten 可扩展性更新(#29974) * hexagon: 面向行拆分多核的按头并行 flash_attn 分区 在行拆分模式下,每个核心计算每个 MUL_MAT 的输出行分片,但 flash_attn 此前是按 Q token (扁平 qrow 拆分)而非按头进行分区的。这迫使每个核心 读取完整的 KV 缓存(全部 n_kv_heads),抵消了多核对 flash_attn 的内存带宽收益。 当 n_kv_heads 可被 n_cores 整除时,将 HMX 和 HVX 的 flash_attn 内核均改为按 KV 头分区:核心 i 独占处理头 [i*n_kv_heads/N, (i+1)*n_kv_heads/N),只读取其对应的 KV 缓存头分片。当 n_kv_heads % n_cores != 0 时回退到 原来的 token 块拆分(例如 4 核上运行带 2 个 KV 头的 Gemma-4)。 由 GGML_HEXAGON_FA_HEAD_SPLIT 控制(默认 1 = 开启)。 该标志被封装进现有 is_dst_fp32 kparams 字节的第 1 位, 以保持在 128 字节 kernel_params blob 限制之内。 在 4 核行拆分下测得的提升(PP t/s,ubatch=1024): Qwen3-0.6B: 6977 -> 11026(+58%) llama-3.2-3B: 3717 -> 5522(+49%) Qwen3.5-4B: 2739 -> 2855(+4%) Gemma-4 MoE: 无变化(MoE FFN 占主导,回退路径) TG 无变化(相对于每层的 matmul+barrier 开销,flash_attn 在解码时间中占比很小)。 * hex-fa: 清理 kern_params 和头拆分选择 * hex-fa: 为 run.py 添加 -fa-head-split 选项 * hex-mdev: 更新 matmul 求解器以应对行拆分场景中减少的工作量 * hex-mmid: 在多设备场景中更好地按专家拆分工作 * hex-fa: 根据 model/n-hvx/ctx-len 扫描更新 HMX 门控 * hex-fa: 在主机端预计算 softcap/scale * hexagon: 将 matmul 展平为 2 维以在多序列中使用 HMX * hex-mm: 清理 kparams 并使用 3/4D -> 2D 的 collapse 映射 * hex-mm: 修复 collapse 回退路径中的拼写错误 * hex-mm: 再次统一 act 张量的命名 * hex-mm: 为融合 matmul 中的维度折叠添加支持 * hex-build: 修复 WoS 构建错误 * hex-mm: 确保 can_collapse 中强制执行 dst 步长 * hex-fa: 为头拆分检查添加一行式提交 * hex-fa: 移除未使用的局部变量 head_split * hex-fa: 收紧 can_split 检查 * hex-mm: 更新未融合路径以使用 act 替代 src1 * hex-mm: 确保为拆分检查所有 dst * hexagon: 修复批量 HMX matmul 序言中第二个权重块地址 * hexagon: HMX matmul 中的 F16 激活与不规则 N * hex-mm: 收紧 mdev 情况下的 ragged/split 检查 * hex-mm: 为 F16 激活启用 MM 融合 * hex-mm: 在融合路径中向求解器传递 tiled 大小 * hex-mmid: 从专家映射循环中移除标量除法 * hex-mmid: 为 mdev 拆分实施正确的 cacheline 安全强制 * hex-mm: 改进 mdev 拆分场景和尾部处理的求解器 * hex-mm: 移除冗余检查 * hex-mm: 修复融合 HMX MUL_MAT_NX 对量化权重丢弃最后一个部分 tile 的问题 * hex-mm: 更好地处理不规则形状(移除 vtcm 的标量 memset) --------- Co-authored-by: ebateni Co-authored-by: Jhen-Jie Hong Co-authored-by: Yiwei Shao

网站: - https://llama.app

证明文件(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/52957661

macOS/iOS: - macOS Apple Silicon(arm64) - macOS Apple Silicon(arm64,启用 KleidiAI) 已禁用(DISABLED) - macOS Intel(x64) - iOS XCFramework

Linux: - Ubuntu x64(CPU) - Ubuntu arm64(CPU) - Ubuntu s390x(CPU) - Ubuntu x64(Vulkan) - Ubuntu arm64(Vulkan) - Ubuntu x64(CUDA 12) - CUDA 12.8 库 - Ubuntu x64(CUDA 13) - CUDA 13.4 库 - Ubuntu arm64(CUDA 13) - CUDA 13.4 库 - Ubuntu x64(ROCm 10.0) - Ubuntu x64(OpenVINO) - Ubuntu x64(SYCL FP32) - Ubuntu x64(SYCL FP16) - Linux arm64(骁龙:CPU、Adreno GPU、Hexagon NPU) - 安装指南

Android: - Android arm64(CPU) - Android arm64(骁龙:CPU、Adreno GPU、Hexagon NPU) - 安装指南

Windows 平台: - Windows x64(CPU 版本) - Windows arm64(CPU 版本) - Windows arm64(OpenCL Adreno 版本) - Windows x64(CUDA 12 版本) - CUDA 12.4 DLL 文件 - Windows x64(CUDA 13 版本) - CUDA 13.4 DLL 文件 - Windows arm64(CUDA 13 版本) - CUDA 13.4 DLL 文件 - Windows x64(Vulkan 版本) - Windows arm64(Vulkan 版本) - Windows x64(OpenVINO 版本) - Windows x64(SYCL 版本) - Windows x64(ROCm 10.0 版本)

openEuler: - 已禁用 - openEuler x86 架构(310p) - openEuler x86 架构(910b,ACL Graph) - openEuler aarch64 架构(310p) - openEuler aarch64 架构(910b,ACL Graph)

UI: - UI

原始出处

llama.cpp Releases

内容说明

原始发布及相关权利归来源方。

机器翻译 · 请以原文为准