桃子桃子快讯
返回首页
工具

llama.cpp 提交 HIP 构建启用 ffast-math,AMD GPU 推理小幅提速

llama.cpp 一项 PR 在 HIP(AMD GPU)构建中启用 -ffast-math,RDNA3.5 上 pr…

2026.07.06 · 周一3 分钟阅读

llama.cpp 的一项拉取请求(PR #23862)尝试在 HIP 构建中启用 -ffast-math 编译选项,目标是为运行在 AMD GPU 上的 LLM 推理带来更快的 prompt 处理速度。提交者在 RDNA3.5(gfx1151,Strix Halo,40 CUs)平台上针对两个模型跑了对比测试,覆盖 FA(Flash Attention)开启与关闭两种路径。

改动内容

  • 在 ggml 的 HIP 后端构建中追加 -ffast-math 编译标志,允许编译器进行更激进的浮点优化。
  • 同时覆盖 FA=1(head_dim=256 的 TILE 路径与 head_dim=64 的 MMA 路径)和 FA=0 三种情形。
  • 与最新 master(2f6c815)进行 prompt 处理(pp)吞吐对比。

基准结果

Qwen3.5-27B Q4_K_M(head_dim=256,TILE 路径,FA=1)

  • 512 tokens:307 → 321 t/s(+4.6%)
  • 2048 tokens:302 → 323 t/s(+7.0%)
  • 4096 tokens:300 → 312 t/s(+4.0%)
  • 8192 tokens:288 → 307 t/s(+6.6%)
  • 16384 tokens:263 → 280 t/s(+6.5%)
  • 32768 tokens:233 → 246 t/s(+5.6%)

Qwen3-0.6B BF16(head_dim=64,MMA 路径,FA=1)

  • 512 tokens:9325 → 9642 t/s(+3.4%)
  • 2048 tokens:8609 → 8892 t/s(+3.3%)
  • 4096 tokens:7485 → 7661 t/s(+2.4%)
  • 8192 tokens:5770 → 5846 t/s(+1.3%)
  • 16384 tokens:3581 → 3636 t/s(+1.5%)
  • 32768 tokens:2037 → 2049 t/s(+0.6%)

观察与解读

  • 大模型在 Q4_K_M 量化下收益更明显,普遍达到 4%–7%;小模型 BF16 路径下的提升较小,长上下文时趋近持平。
  • FA=0 时两种构建结果基本一致,说明收益主要来自注意力计算路径上的浮点简化。
  • -ffast-math 会在一定程度上牺牲浮点严格性,理论上可能影响数值敏感场景的输出确定性,社区需结合自身用例评估是否合入默认构建。

整体来看,这是一项面向 AMD GPU 用户的小幅性能优化,对 CUDA 主导的 llama.cpp 主线用户影响有限,但为 HIP/ROCm 生态增加了一个可调的加速开关。

信源