Exécuter des LLM sur l'NPU AMD avec FastFlowLM - Guide Fedora

Vous pouvez désormais exécuter des modèles de langage de grande taille (LLM) directement sur votre NPU AMD en utilisant Fedora. Ce guide vous montre comment configurer la pile logicielle sur un ASUS ROG Flow Z13 équipé d'une puce Ryzen AI Max 390.

La configuration nécessite quatre couches fonctionnelles :

  • Noyau + pilote DKMS (amdxdna) : crée le nœud de périphérique et charge le firmware.
  • Base XRT : le runtime AMD.
  • Plugin NPU XRT : permet à XRT de détecter le NPU.
  • FastFlowLM (flm) : l'outil qui exécute les modèles.

Comme Fedora ne propose pas de paquets précompilés pour cela, vous devez compiler à partir des sources.

⚠️ Corrections critiques avant de commencer

  1. Activer l'IOMMU De nombreux utilisateurs désactivent l'IOMMU pour l'optimisation du GPU. Cela empêche le fonctionnement du NPU. Vérifiez vos paramètres : cat /proc/cmdline Si vous voyez amd_iommu=off, supprimez-le de /etc/default/grub, régénérez votre configuration grub et redémarrez.

  2. Définir Memlock sur illimité Le NPU nécessite de la mémoire verrouillée. Vérifiez votre limite : ulimit -l Si elle n'est pas illimitée, ajoutez ceci dans /etc/security/limits.d/99-memlock.conf :

  • soft memlock unlimited
  • hard memlock unlimited Déconnectez-vous puis reconnectez-vous.
  1. Corriger le chemin xrt-smi Ne créez pas de lien symbolique pour xrt-smi. Cela casse le script interne. Utilisez plutôt un 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

Résumé des étapes de compilation

  • Installer les dépendances : utilisez dnf pour installer git, dkms, cmake et diverses bibliothèques de développement.
  • Compiler XRT : clonez le dépôt xdna-driver. Créez un wrapper cmake3 pour Fedora. Compilez et installez les RPM.
  • Installer le plugin NPU : compilez le xrt_plugin à partir du dépôt xdna-driver et installez le RPM résultant.
  • Compiler FastFlowLM : clonez le dépôt FastFlowLM et utilisez cmake pour la compilation et l'installation.

Commandes de vérification

Vérifiez le noyau et le NPU : flm validate

Vérifiez le matériel : xrt-smi examine xrt-smi validate

Exécutez un modèle : flm run gemma4-it:e4b

Benchmarks de performance (Ryzen AI Max 390)

  • Temps jusqu'au premier jeton (token) : 1,21 s
  • Vitesse de préremplissage (prefill) : 18 tok/s
  • Vitesse de décodage : 11 tok/s

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

Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi