strix-llama 新分支:提示词处理性能比 Vulkan 提升 21–54%,在 128k 时最高达到原版 ROCm 内核的 2.7 倍,输出质量相同

Reddit r/LocalLLaMA 工具

摘要

strix-llama.cpp 的 rdna35-perf 分支为 Strix Halo(Radeon 8060S)带来新的 RDNA3.5 闪存注意力与 GEMM 内核优化,提示词处理速度比 Vulkan 快 21–54%,在 128k 长上下文下最快可达原版 ROCm 的 2.7 倍,且输出质量与原版 ROCm 基本一致。

我一直在我的 Strix Halo 主机(Radeon 8060S,128 GB)上调优 llama.cpp,现在的数据已经值得分享了。这是基于 halo-box/strix-llama.cpp 的一个分支,名为 rdna35-perf;后者是面向 Strix Halo 的 llama.cpp 分支:https://github.com/asf0/strix-llama.cpp/tree/rdna35-perf(10 次提交,仅支持 ROCm/HIP) 简要总结 提示词处理:比 Vulkan 快 21–54%,比原版 ROCm 快 8–174%。随着上下文增长,相对 ROCm 的优势会扩大,因为原版 ROCm 的 flash attention 在较大深度下性能下降得很厉害。生成:在 27B 稠密模型上与 Vulkan 持平。在 MoE 和 2B 模型上,短上下文时比 Vulkan 慢 2–3%,从 64k 起差距在 1% 以内。比原版 ROCm 快 5–29%。质量:输出比 Vulkan 的输出更接近原版 ROCm,困惑度保持不变。模型 PP 相对 Vulkan(0k → 128k) PP 相对原版 ROCm(0k → 128k) TG 相对 Vulkan(0k → 128k) Qwen3.6 35B-A3B(MoE) +54% → +36% +38% → +88% −3% → 0% Qwen3.8 27B(稠密) +38% → +25% +8% → +174% 0% → 0% Qwen3.5 2B(稠密) +21% → +34% +9% → +87% −3% → 0% 结果 使用 llama-bench,Q8_0 权重,q8_0 KV 缓存,开启 flash attention,单位为 tok/s。“深度”指测试运行时 KV 缓存中已有的 token 数量。Vulkan 和 ROCm 均使用 rdna35-perf 所基于的同一个 strix-llama.cpp master 版本。Qwen3.6 35B-A3B(MoE,ub 4096) 测试 深度 Vulkan ROCm rdna35-perf 相对 Vulkan 相对 ROCm pp4096 0 2625 2935 4045 +54% +38% pp4096 8k 2304 2430 3452 +50% +42% pp4096 16k 2065 1966 3004 +45% +53% pp4096 32k 1716 1460 2388 +39% +64% pp4096 64k 1279 959 1695 +32% +77% pp4096 128k 786 568 1068 +36% +88% tg64 0 58.2 52.3 56.3 −3% +8% tg64 8k 56.1 50.4 54.3 −3% +8% tg64 16k 54.6 48.5 53.2 −3% +10% tg64 32k 51.8 45.3 50.7 −2% +12% tg64 64k 47.1 39.7 46.4 −1% +17% tg64 128k 39.9 32.2 39.9 0% +24% Qwen3.8 27B(稠密,ub 2048) 测试 深度 Vulkan ROCm rdna35-perf 相对 Vulkan 相对 ROCm pp2048 0 484 614 666 +38% +8% pp2048 8k 442 542 611 +38% +13% pp2048 16k 421 476 575 +37% +21% pp2048 32k 385 348 513 +33% +47% pp2048 64k 326 204 422 +29% +107% pp2048 128k 250 114 312 +25% +174% tg64 0 8.0 7.6 8.0 0% +5% tg64 8k 7.9 7.4 7.9 0% +7% tg64 16k 7.8 7.2 7.8 0% +9% tg64 32k 7.6 6.8 7.6 0% +12% tg64 64k 7.3 6.2 7.3 0% +18% tg64 128k 6.8 5.2 6.7 0% +29% Qwen3.5 2B(稠密,ub 2048) 测试 深度 Vulkan ROCm rdna35-perf 相对 Vulkan 相对 ROCm pp2048 0 6481 7179 7852 +21% +9% pp2048 8k 5618 6253 7158 +27% +14% pp2048 16k 5000 5172 6611 +32% +28% pp2048 32k 4155 3888 5580 +34% +44% pp2048 64k 3220 2597 4277 +33% +65% pp2048 128k 2160 1547 2886 +34% +87% tg64 0 99.3 91.5 96.8 −3% +6% tg64 8k 95.9 88.2 93.2 −3% +6% tg64 16k 92.9 84.5 91.4 −2% +8% tg64 32k 88.3 79.1 87.1 −1% +10% tg64 64k 79.5 69.2 79.2 0% +14% tg64 128k 67.6 56.2 67.7 0% +21% 使用 f16 KV 缓存时也呈现相同趋势:PP 比 Vulkan 快 20–56%,在 128k 时比原版 ROCm 最高快 +171%,TG 相对 Vulkan 的差异在 −3% / +2% 以内。质量 rdna35-perf 修改了内核,因此我检查了它是否会改变输出:在 wikitext-2 上测量相对于原版 ROCm 的 KL 散度(6 个各含 4096 个 token 的分块),并测量 32k 上下文下的困惑度。模型 相对原版 ROCm 的 KLD(Vulkan / rdna35-perf) 最高概率 token 相同比例(Vulkan / rdna35-perf) 32k 下的 PPL(Vulkan / ROCm / rdna35-perf) Qwen3.6 35B-A3B 0.0038 / 0.0018 97.8% / 98.5% 6.028 / 6.023 / 6.024 Qwen3.8 27B 0.0066 / 0.0013 98.9% / 99.7% 6.003 / 6.004 / 6.007 Qwen3.5 2B 0.0008 / 0.0001 98.6% / 99.5% 10.046 / 10.049 / 10.049 rdna35-perf 比 Vulkan 更接近原版 ROCm,三个构建版本的困惑度相同。改动内容 面向 RDNA3.5 的 flash attention 内核(fattn-rdna35)。这是最大的性能提升来源,也是长上下文 PP 性能得以保持的原因。如果想进行对比,可以通过 GGML_FA_RDNA35=0 将其关闭。针对量化矩阵乘法的预填充 GEMM 调优。MoE:路由辅助函数、融合归约 + 残差、用于推测解码验证批次的分组矩阵向量乘法。Gated DeltaNet(Qwen3.5/3.6/3.8 中的线性注意力层):融合 SiLU 门控输出归一化和融合解码。解码:对长度超过 4096 的行使用普通矩阵向量乘法(这弥合了 27B 模型解码性能与 Vulkan 的差距),并为 Qwen3.6 MoE 增加了解码算子融合。其他:在 RDNA3.5 上默认关闭 HIP 图(在这里会更慢)、更快的惩罚采样器、Qwen3.5/3.6 使用草稿模型时在主机端进行预填充,以及 DFlash 草稿模型在 GPU 上直接读取目标模型特征。截至目前,我只测试了这 3 个模型。
查看原文

相似文章

Strix Halo ROCm + MTP 笔记 (2026年5月)

Reddit r/LocalLLaMA

技术基准测试,比较 ROCm 和 Vulkan 后端在 Strix Halo 硬件上运行 LLM 推理的性能,MTP 合并到 llama.cpp 之后,结果显示 ROCm 在全上下文时性能严重下降,而 Vulkan 保持稳定。