カスタム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

エングラム:Claude CodeおよびMCPクライアント向けオープンソースメモリレイヤー
Tools

エングラム:Claude CodeおよびMCPクライアント向けオープンソースメモリレイヤー

Engramは、Claude Code、Cursor、Windsurfなどの任意のクライアントと連携するMCPサーバーとして機能するオープンソースのメモリレイヤーです。意味的ベクトル検索により無制限のメモリを保存し、LOCOMOベンチマークで80%の精度を達成、クエリあたり約800トークンを使用します(ファイルベースのアプローチでは5,000トークン以上)。

OpenClawRadar
Ctxpact: ローカルLLM向けコンテキスト圧縮プロキシ
Tools

Ctxpact: ローカルLLM向けコンテキスト圧縮プロキシ

Ctxpactは、OpenAI互換のプロキシで、16kコンテキストウィンドウを持つローカルLLM向けに過大な入力を圧縮します。DCP、要約、抽出戦略を含む3段階パイプラインを使用し、ベンチマークでは110kトークンが12kに圧縮され、読解精度は8/8を達成しました。

OpenClawRadar
DeepMindのDiscoRLメタ学習更新ルールがJAXからPyTorchに移植されました
Tools

DeepMindのDiscoRLメタ学習更新ルールがJAXからPyTorchに移植されました

ある開発者が、DeepMindのDiscoRLメタ学習更新ルールをJAXからPyTorchに移植しました。この実装には、GitHubリポジトリ、Colabノートブック、API、およびHugging Faceでホストされた重みが含まれています。

OpenClawRadar
ホリスト・シード:永続的アイデンティティと合意に基づく記憶統合を備えたローカルLLMフレームワーク
Tools

ホリスト・シード:永続的アイデンティティと合意に基づく記憶統合を備えたローカルLLMフレームワーク

Holisto Seedは、LLMエージェントに永続的なアイデンティティ、伝記的記憶、ユーザーとの共進化的関係を提供する関係的個体化フレームワークです。Gitベースのバージョン管理システムで完全ローカルで動作し、記憶統合のための合意に基づく睡眠サイクルを特徴としています。

OpenClawRadar