预发布 / 持续构建版本:这是实验性构建版本,不是稳定版本。
sycl: 使用 MKL flash attention 加速 GLM MLA prefill(#29171) * sycl: 使用 MKL flash attention 加速 GLM MLA prefill GLM-4.7 Flash 使用 MLA 形状:576 宽的 Q/K 头、512 宽的 V 头、GQA 20 和 F16 KV。SYCL 分发器拒绝此形状, 因为常规的 MKL flash-attention 门控要求 K/V 宽度匹配,且将头维度上限设为 512,因此 prompt 处理 回退到慢得多的 TILE 内核。 仅允许已验证的 576/576/512、GQA-20 F16 形状进入现有的 MKL 流水线。所有其他不匹配的 K/V 形状保持其当前的 回退路径。 将 GLM 的 V 缓存作为 K 行的一个较窄的跨距视图来处理。当行跨距有填充时选择 跨距 F16 描述符,并且仅当 K/V 反量化缓冲区的逻辑宽度匹配时才为其创建别名。将 跨距例外限制为共享 K 行跨距的真实 V 视图。 添加精确的 576/512、GQA-20 prompt 路径后端测试。 在 Intel Arc Pro B70 上、master e613ef2 版本,pp8192 从 432.80 提升到 1292.29 tok/s(2.99x,+198.6%)。tg256 在噪声范围内 保持不变,为 45.67 对比 45.65 tok/s。精确的 MLA 测试 通过,调试输出确认了 MKL 分发。 * sycl: 以 F16 存储 MKL flash attention 分数 将 QK GEMM 输出保持在 F16 而不是 F32。在线 softmax 仍会将每个分数转换为 F32 以进行 max、指数和求和计算,因此除分数舍入外,逐元素的数学运算不变,而且 F32 矩阵本来写入后也只是被当作 F16 概率来消费。 F32 分数矩阵是此路径上最大的 flash-attention 中间结果;以 F16 存储可将其大小和流量减半。这建立在 1aa2954bd 的合并 softmax 加载之上,该加载以协作方式读取每个分数行,因此更小的 dtype 能带来收益。 在 Intel Arc Pro B70 上、使用上一次提交的分发进行测量,参数为 -ngl 999 -b 4096 -ub 1024 -ctk f16 -ctv f16 -fa: pp8192 1583.9 -> 1657.1 tok/s(+4.6%) pp64000 610.0 -> 684.5 tok/s(+12.2%) pp131072 ~354 -> 402.1 tok/s(+13.5%) 8k 上下文下的 tg256 不变(32.64),FLASH_ATTN_EXT 测试套件 未出现新的失败。精确的 GLM MLA 后端用例与 CPU 对照通过。 如果你更倾向于只引用实测配对,可调整 ~354 的基线数字(131k 仅分发这一点来自等效的维护版本)。可选地按照贡献指南添加 Assisted-by: ,因为 AI 参与了此更改。 * Revert "sycl: 以 F16 存储 MKL flash attention 分数" 这将回滚提交 265f9748164dc88e02678425b75f520ccd528b32。网站: - https://llama.app
证明(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/53529269
macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64,启用 KleidiAI) 已禁用 - 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: - DISABLED - openEuler x86 架构 (310p) - openEuler x86 架构 (910b, ACL Graph) - openEuler aarch64 架构 (310p) - openEuler aarch64 架构 (910b, ACL Graph)
UI: - UI