FastFlowLMを使用してAMD NPUでLLMを実行する - Fedoraガイド
Fedoraを使用して、AMD NPU上で大規模言語モデル(LLM)を直接実行できるようになりました。このガイドでは、Ryzen AI Max 390チップを搭載したASUS ROG Flow Z13で、スタックをセットアップする方法を説明します。
セットアップには、4つの動作レイヤーが必要です:
- Kernel + DKMS driver (amdxdna): デバイスノードを作成し、ファームウェアをロードします。
- XRT base: AMDのランタイム。
- XRT NPU plugin: XRTがNPUを認識できるようにします。
- FastFlowLM (flm): モデルを実行するためのツール。
Fedoraにはこれら用のビルド済みパッケージがないため、ソースからビルドする必要があります。
⚠️ 開始前の重要な修正事項
IOMMUを有効にする 多くのユーザーがGPUのチューニングのためにIOMMUを無効にしていますが、これを行うとNPUが動作しなくなります。 設定を確認してください: cat /proc/cmdline もし
amd_iommu=offが表示された場合は、/etc/default/grubからそれを削除し、grub設定を再生成して再起動してください。Memlockを無制限に設定する NPUにはロックされたメモリが必要です。 制限を確認してください: ulimit -l もし無制限(unlimited)でない場合は、
/etc/security/limits.d/99-memlock.confに以下を追加してください:
- soft memlock unlimited
- hard memlock unlimited その後、一度ログアウトして再度ログインしてください。
- xrt-smiのパスを修正する xrt-smiをシンボリックリンクにしないでください。内部スクリプトが壊れてしまいます。代わりにラッパーを使用してください: sudo tee /usr/local/bin/xrt-smi <<'EOF'
#!/bin/sh exec /opt/xilinx/xrt/bin/xrt-smi "$@" EOF sudo chmod +x /usr/local/bin/xrt-smi
ビルド手順の概要
- 依存関係のインストール:
dnfを使用してgit、dkms、cmake、および各種開発ライブラリをインストールします。 - XRTのビルド:
xdna-driverリポジトリをクローンします。Fedora用のcmake3ラッパーを作成し、RPMをビルドしてインストールします。 - NPUプラグインのインストール:
xdna-driverリポジトリからxrt_pluginをビルドし、生成されたRPMをインストールします。 - FastFlowLMのビルド:
FastFlowLMリポジトリをクローンし、cmakeを使用してビルドおよびインストールします。
検証コマンド
カーネルとNPUを確認する: flm validate
ハードウェアを確認する: xrt-smi examine xrt-smi validate
モデルを実行する: flm run gemma4-it:e4b
パフォーマンス・ベンチマーク (Ryzen AI Max 390)
- 初回トークン生成時間: 1.21 s
- プリフィル速度: 18 tok/s
- デコード速度: 11 tok/s
出典: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5
オプションの学習コミュニティ: https://t.me/GyaanSetuAi
