LLMs auf der AMD NPU mit FastFlowLM ausführen – Fedora-Leitfaden

Sie können nun Large Language Models direkt auf Ihrer AMD NPU unter Fedora ausführen. Dieser Leitfaden zeigt Ihnen, wie Sie den Stack auf einem ASUS ROG Flow Z13 mit einem Ryzen AI Max 390 Chip einrichten.

Das Setup erfordert vier funktionierende Ebenen:

  • Kernel + DKMS-Treiber (amdxdna): Erstellt den Device-Node und lädt die Firmware.
  • XRT-Basis: Die AMD-Runtime.
  • XRT NPU-Plugin: Ermöglicht es XRT, die NPU zu erkennen.
  • FastFlowLM (flm): Das Tool, das die Modelle ausführt.

Da Fedora hierfür keine vorkonfigurierten Pakete anbietet, müssen Sie die Installation aus dem Quellcode vornehmen.

⚠️ Kritische Korrekturen vor dem Start

  1. IOMMU aktivieren Viele Nutzer deaktivieren IOMMU für GPU-Tuning. Dies führt dazu, dass die NPU nicht mehr funktioniert. Überprüfen Sie Ihre Einstellungen: cat /proc/cmdline Wenn Sie amd_iommu=off sehen, entfernen Sie diesen Eintrag aus /etc/default/grub, regenerieren Sie Ihre Grub-Konfiguration und starten Sie neu.

  2. Unbegrenzten Memlock festlegen Die NPU benötigt gesperrten Speicher (locked memory). Überprüfen Sie Ihr Limit: ulimit -l Falls der Wert nicht auf „unlimited“ steht, fügen Sie Folgendes zu /etc/security/limits.d/99-memlock.conf hinzu:

  • soft memlock unlimited
  • hard memlock unlimited Melden Sie sich anschließend ab und wieder an.
  1. Den xrt-smi-Pfad korrigieren Erstellen Sie keinen Symlink für xrt-smi. Dies beschädigt das interne Skript. Verwenden Sie stattdessen einen Wrapper: 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

Zusammenfassung der Build-Schritte

  • Abhängigkeiten installieren: Verwenden Sie dnf, um git, dkms, cmake und verschiedene Entwicklungsbibliotheken zu installieren.
  • XRT bauen: Klonen Sie das xdna-driver-Repo. Erstellen Sie einen cmake3-Wrapper für Fedora. Bauen und installieren Sie die RPMs.
  • NPU-Plugin installieren: Bauen Sie das xrt_plugin aus dem xdna-driver-Repo und installieren Sie das resultierende RPM.
  • FastFlowLM bauen: Klonen Sie das FastFlowLM-Repo und verwenden Sie cmake zum Bauen und Installieren.

Befehle zur Verifizierung

Kernel und NPU prüfen: flm validate

Hardware prüfen: xrt-smi examine xrt-smi validate

Ein Modell ausführen: flm run gemma4-it:e4b

Performance-Benchmarks (Ryzen AI Max 390)

  • Zeit bis zum ersten Token: 1,21 s
  • Prefill-Geschwindigkeit: 18 tok/s
  • Decoding-Geschwindigkeit: 11 tok/s

Quelle: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5

Optionale Lern-Community: https://t.me/GyaanSetuAi