RDNA2 闪存注意力在官方版本中未启用,我通过这个构建启用了它,速度翻倍

Reddit r/LocalLLaMA 工具

摘要

自定义二进制解决方案为 llama.cpp 在 AMD RDNA2 GPU 上启用了闪存注意力,推理速度翻倍(70-80 tok/s,而官方版本崩溃)。仅确认与 Qwen3.6 35B/27B 配合使用。

大家好,我可能拥有这些 AMD Radeon RDNA2 GPU 上最快设置,原因只有一个:一个自定义二进制文件,它绕过了当前官方版本中导致崩溃的某个断言语句。这个二进制文件绕过了该断言并启用了闪存注意力。适用于带有 qwen3.6 35B 的 rocm llama.cpp 构建。简单来说:vulkan tok/s 30。官方 rocm tok/s:无法运行。这个构建:70-80 tok/s,自己试试吧。https://github.com/Minerest/llama.cpp\_RDNA2\_FlashAttnEnabled/releases/tag/mtp-fa-workaround 如果你们尝试使用官方 llama.cpp 构建在此硬件上运行 rocm 的闪存注意力,将会碰壁。GGMLFlash Attention Crash (gfx1030/gfx1031) GGML\_ASSERT(max\_blocks\_per\_sm > 0) failed ggml/src/ggml-cuda/fattn-common.cuh:1054 基本上,HIP 报告 hipOccupancyMaxActiveBlocksPerMultiprocessor = 0,这是错误的。这证明了我们确实有内存。我打了一个补丁,在原本会崩溃的地方输出工作日志。GitHub 上有一些技术发现,但对于其他只想获得更快构建的人来说,这就是你们要的。注意:rocm 上的本地 AI 经常崩溃。Gemma 在使用更大上下文时会崩溃。Deepseek 运行得非常非常慢。我只确认 qwen3.6 35B 和 27B 可以正常工作。对于那些想要 llama 服务器标志的人:exec "$REPO/mtp-build/bin/llama-server" \\ \-m "$MODEL" \\ \--spec-type draft-mtp \\ \--spec-draft-n-max 2 \\ \-fa on \\ \--no-mmproj \\ \-ngl 50 \\ \-ts 16,10 \\ \-c 64192 \\ \--parallel 1 \\ \--host 127.0.0.1 --port 8080 \\ 最后,打补丁后的 llama cpp 构建命令:cmake -S . -B build-instrumented \\ \-DCMAKE\_BUILD\_TYPE=Release \\ \-DGGML\_HIP=ON \\ \-DGPU\_TARGETS="gfx1030;gfx1031" \\ \-DROCM\_PATH=/usr \\ \-DBUILD\_SHARED\_LIBS=ON \\ \-DCMAKE\_HIP\_FLAGS="-DGGML\_FATTN\_TRACE" cmake --build build-instrumented --target llama-bench -j6
查看原文

相似文章