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にはこれら用のビルド済みパッケージがないため、ソースからビルドする必要があります。

⚠️ 開始前の重要な修正事項

  1. IOMMUを有効にする 多くのユーザーがGPUのチューニングのためにIOMMUを無効にしていますが、これを行うとNPUが動作しなくなります。 設定を確認してください: cat /proc/cmdline もし amd_iommu=off が表示された場合は、/etc/default/grub からそれを削除し、grub設定を再生成して再起動してください。

  2. Memlockを無制限に設定する NPUにはロックされたメモリが必要です。 制限を確認してください: ulimit -l もし無制限(unlimited)でない場合は、/etc/security/limits.d/99-memlock.conf に以下を追加してください:

  • soft memlock unlimited
  • hard memlock unlimited その後、一度ログアウトして再度ログインしてください。
  1. 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 を使用して gitdkmscmake、および各種開発ライブラリをインストールします。
  • 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