RX 9070(RDNA4/gfx1201) — ROCm 7.2.1 の llama.cpp ベンチマーク:フラッシュアテンション発見

Reddit r/LocalLLaMA / 2026/3/27

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • AMD の RX 9070(RDNA4/gfx1201)で ROCm 7.2.1 を使用すると、フラッシュアテンションを有効にし、適切な ROCm/llama.cpp のビルドフラグで構築することで、llama.cpp のプロンプト処理において Vulkan を大幅に上回ることができる。
  • 高密度モデル(Qwen3-8B)では、MMQ+HIP グラフを追加し `--flash-attn` で実行することで、プロンプト処理が約 711 t/s(ROCm デフォルト)から約 3,980 t/s(約 5.5 倍)へと向上する。
  • MoE モデルのテスト(Qwen3.5-14B-A3B、アクティブパラメータ 3B)では、ROCm によりプロンプト処理は改善する(おおよそ +12%)が、トークン生成では Vulkan のほうが大幅に優れている(MoE で約 +23%)。
  • コンテキスト長のスケーリングでは、ROCm のプロンプト処理における優位性はコンテキストが大きくなるほど縮まり、8K コンテキスト付近でほぼ同等に到達する。
  • 複数の ROCm 環境/ビルド調整(例:`HSA_OVERRIDE_GFX_VERSION`、`HIP_FORCE_DEV_KERNELS`、`HIPBLAS_V2`)は、gfx1201 ではほとんど効果がなかったか、失敗を引き起こした。これにより、主要な改善要因は主として flash-attn と特定のビルド構成であることが示唆される。
RX 9070 (RDNA4/gfx1201) ROCm 7.2.1 llama.cpp ベンチマーク — The Flash Attention Discovery

https://preview.redd.it/3pjau5brllrg1.png?width=2501&format=png&auto=webp&s=181000a4046b8de02cc75c2a5c1776a3847ff34a

**ハードウェア:** AMD Ryzen 9 9900X | RX 9070 16GB VRAM (RDNA 4, gfx1201) | 192GB DDR5 | Ubuntu 24.04 **ROCm のバージョン:** 7.2.1 **llama.cpp ビルド:** `-DGGML_CUDA_FORCE_MMQ=ON -DGGML_HIP_GRAPHS=ON` で ROCm --- ## TL;DR RX 9070(RDNA4)で ROCm 7.2.1 は、フラッシュアテンションを有効化し、正しいビルドフラグを使うと、プロンプト処理では Vulkan に勝ちます。MoE モデルでは、トークン生成はいまだに Vulkan のほうが有利です。デフォルトの ROCm ビルドは致命的に遅いです — フラッシュアテンション単体でも、密な(dense)モデルのプロンプト処理が 5.5× 改善します。 --- ## 発見:フラッシュアテンションがすべてを変える 試してみたこと ROCm をそのまま(out of the box)使うのはがっかりする結果でした。そこで次のフラグを見つけました: ```bash cmake .. -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1201 
 -DCMAKE_BUILD_TYPE=Release 
 -DCMAKE_PREFIX_PATH=/opt/rocm-7.2.1 
 -DGGML_CUDA_FORCE_MMQ=ON 
 -DGGML_HIP_GRAPHS=ON # --flash-attn で実行 ``` **密なモデル(Qwen3-8B Q8_0)— プロンプト処理:** - ROCm デフォルト、フラッシュアテンションなし: **711 t/s** - ROCm + フラッシュアテンションのみ: **~3,980 t/s** - **1 つのフラグで 5.5× 改善** --- ## 完全なベンチマーク結果 ### Qwen3.5-14B-A3B MXFP4(MoE — アクティブ 3B パラメータ) | 設定 | pp512 (t/s) | tg128 (t/s) | |---|---|---| | Vulkan(FA オン) | 3,332 | **113.2** | | ROCm デフォルト、FA なし | 2,042 | 81.4 | | **ROCm MMQ+GRAPHS+FA** | **3,731** | 87.6 | **判定:** ROCm がプロンプト処理で勝利(+12%)。Vulkan がトークン生成で勝利(MoE で +23%)。 ### Qwen3-8B Q8_0(密) | 設定 | pp512 (t/s) | tg128 (t/s) | |---|---|---| | Vulkan | 3,336 | 68.1 | | ROCm デフォルト、FA なし | **711** | 60.6 | | **ROCm MMQ+GRAPHS+FA** | **3,931** | 64.2 | **判定:** ROCm がプロンプト処理で勝利(+18%)。トークン生成は概ね同程度(+6% Vulkan)。 ### コンテキストスケーリング — Qwen3.5-14B-A3B MXFP4 | コンテキスト | Vulkan (t/s) | ROCm MMQ+FA (t/s) | 勝者 | |---|---|---|---| | pp512 | 3,184 | **3,731** | ROCm +17% | | pp2048 | 3,537 | **3,770** | ROCm +7% | | pp8192 | 3,280 | 3,191 | Vulkan +3% | ROCm のプロンプト処理の優位は長いコンテキストでは縮みます。おおむね 8K で同等です。 --- ## うまくいかなかったこと 有意な影響はなく、もしくはクラッシュを起こしたもの: - `HSA_OVERRIDE_GFX_VERSION` — gfx1201 でクラッシュ、またはサイレント失敗 - `HIP_FORCE_DEV_KERNELS` — 影響なし - `HIPBLAS_V2` — 影響なし - `GPU_MAX_WAVESPERCU` — 影響なし - より小さい ubatch サイズ — プロンプト処理の性能が低下 --- ## 私の環境でのビルド - `~/src/llama.cpp/build/` — Vulkan(安定、MoE で良いトークン生成) - `~/src/llama.cpp/build-rocm/` — ROCm デフォルト(使わないで—遅いほう) - `~/src/llama.cpp/build-rocm2/` — **ROCm MMQ+GRAPHS(現在の本番)** ROCm MMQ+GRAPHS ビルドでポート 8081 に本番投入、コンテキスト 262K、フラッシュアテンションはオン。 --- ## gfx1201 / RDNA4 に関するメモ これは、ROCm 7.2.1 における RX 9070 のための、私が見た最初期の公開ベンチマークセットの一つです。RDNA4 カーネルは新しく、まだ成熟途中です — gfx1201 向けの最適化が gfx1201-specific として着地するにつれて、今後のリリースで ROCm のトークン生成性能が Vulkan とのギャップを埋めてくると期待しています。bitsandbytes はまだ gfx1201 をサポートしていません(HIP `invalid device function` エラー)。bitsandbytes ベースの量子化が必要なら、Vulkan を使うか、次の bitsandbytes リリースを待ってください。 --- ## ハードウェアの前提(Hardware Context) RX 9070 は 192GB DDR5 と組になっています。16GB VRAM に収まらない MoE モデルでは、エキスパートのオフロード経路(`-ot "exps=CPU"`)が強力な結果を出します — 122B Qwen モデルは、全 CPU の 4.2 tok/s に対して 14 tok/s です。このベンチマークは別記事にあります。 --- *役に立てば質問に答えたり、特定のベンチマークを実行したりします。* 
提出者: /u/Important_Quote_1180
[リンク] [コメント]
広告