カスタムllama.cppバックエンド、Ryzen AI MAX 385のAMD XDNA2 NPUにLLM行列乗算をオフロード

✍️ OpenClawRadar📅 公開日: March 26, 2026🔗 Source
カスタムllama.cppバックエンド、Ryzen AI MAX 385のAMD XDNA2 NPUにLLM行列乗算をオフロード
Ad

AMD XDNA2 NPU オフロードのためのカスタムバックエンド

開発者が、Ryzen AI MAX 385 (Strix Halo) の AMD XDNA2 NPU に GEMM 演算を直接ディスパッチするカスタム llama.cpp バックエンドを作成しました。このアプローチにより、iGPU の使用や共有メモリの競合を回避しています。

ハードウェアとソフトウェア構成

モデル: Meta-Llama-3.1-8B-Instruct Q4_K_M

ハードウェア: Ryzen AI MAX 385, CachyOS 6.19, amdxdna ドライバ, XRT 2.21.75

パフォーマンス結果

  • Vulkan プリフィル + NPU デコード: 930 t/s プリフィル (pp512), 43.7 t/s デコード (tg64), 41.5W 平均電力, 0.947 J/tok
  • Vulkan のみ: 833 t/s プリフィル, 41.6 t/s デコード, 52.2W 平均電力, 1.3 J/tok
  • CPU のみ: 4.6 t/s プリフィル, 3.76 t/s デコード

NPU デコードパスは、Vulkan のみの場合と比較して約 10W を節約しながら、デコードスループットを同等(わずかに上回る)に維持しています。これにより、iGPU は他の作業のために空いたままになります。

技術スタック

  • カーネル: mlir-aie xclbins (Xilinx/mlir-aie, Apache 2.0)
  • ランタイムディスパッチ: XRT 2.21.75
  • ベース: ggml-org/llama.cpp のフォーク (MIT)
  • カーネルルーティング: 異なる K 次元タイルをカバーする 4 つの xclbin スロットで、MIN_N/MAX_N ルーティングにより実行時に適切なカーネルを選択
Ad

パフォーマンス上限の調査

開発者は、43.7 t/s を超えるデコード速度を目指して以下のアプローチを試みました:

  • バッチスイープ N=1..64: 改善なし(性能は平坦)
  • Int4 ダブル量子化: SNR が低下 (44.8 → 19.7 dB) - 行き止まり
  • カスケードオフロード: AMD のドキュメントにより除外
  • Llama-3.2-1B ドラフトによる推測的デコード: 44% の受容率、212 t/s のドラフト速度だが、実質的な向上はゼロ

推測的デコードからの改善がないこと(通常は 44% の受容率で向上が見られる)は、ボトルネックが計算ではなく LPDDR5 帯域幅にあることを示しています。NPU はすでにメモリの壁に達しており、43.7 t/s がこのハードウェア上でのこのモデルの上限となっています。

プロジェクトリンク

  • GitHub: https://github.com/BrandedTamarasu-glitch/OllamaAMDNPU
  • 変更履歴: https://brandedtamarasu-glitch.github.io/OllamaAMDNPU/xdna-npu/

このプロジェクトは Claude Sonnet 4.6 / Claude Code で構築され、再現性のために公開されています。開発者は、Strix Halo または Phoenix で amdxdna ドライバを実行している他のユーザーからのフィードバックを求め、同等の量子化モデルでのデコードスループットを比較し、他の XDNA2 構成でも同じパフォーマンス上限に直面するかどうかを確認したいと考えています。

📖 Read the full source: r/LocalLLaMA

Ad

👀 See Also

Ninetails Memory Engine V4.5:Int8量子化+LRUキャッシュにより、ローカルMCPメモリを60MBに削減
Tools

Ninetails Memory Engine V4.5:Int8量子化+LRUキャッシュにより、ローカルMCPメモリを60MBに削減

Ninetails Memory Engine V4.5は、Int8スカラー量子化とLRUキャッシュ削除を採用し、埋め込みごとのベクトルストレージを6KBから1.5KBに削減し、エンジン全体を40-60MBのRAMに抑えます。完全ローカルのSQLite実装で、70%のベクトル類似度検索と30%のBM25検索を組み合わせています。

OpenClawRadar
Claudeを用いたObsidian用エージェント型RAGの構築と幻覚検出のための評価ハーネス
Tools

Claudeを用いたObsidian用エージェント型RAGの構築と幻覚検出のための評価ハーネス

ある開発者が、自身のObsidian Vault上にエージェンティックRAGシステムを構築し、Claudeが工学書の質問に回答できるようにした。さらに、Claude Sonnetを判定役とする評価ハーネスを作成し、エージェントが誤った内容を自信満々に出力するケースを検出できるようにした。ルーブリックの反復改良により、判定者と人間の一致率が39%から94%に向上した。

OpenClawRadar
エージェントX線: トレースログからAIエージェントの障害をデバッグするためのオープンソースツール
Tools

エージェントX線: トレースログからAIエージェントの障害をデバッグするためのオープンソースツール

Agent-Xrayは、MITライセンスのオープンソースツールで、AIエージェントのトレースログを分析し、spin、tool_bug、early_abortなどのカテゴリに失敗を分類します。また、敵対的チャレンジに対して修正をテストするための強制実行モードも含まれています。

OpenClawRadar
Wisepanel MCPサーバーは、Claude CodeとCursorでマルチLLM審議を可能にします
Tools

Wisepanel MCPサーバーは、Claude CodeとCursorでマルチLLM審議を可能にします

Wisepanelは、Claude Code、Cursor、または任意のMCPクライアントから直接マルチエージェントの審議を実行できるMCPサーバーをリリースしました。ChatGPT、Claude、Gemini、Perplexityモデルを使用した発散的コンテキスト強化システムを採用しています。

OpenClawRadar