Exécuter des LLMs sur AMD RX 7800 XT (Guide ROCm)
Guide fourni par Ian Wirtz
Recommandé : LM Studio (
lms) donne généralement les meilleurs résultats, mais Ollama est une alternative viable.
Prérequis
Étape 1 - Installer rocm-hip-runtime
Avant que LM Studio ou Ollama puisse utiliser votre GPU via ROCm, le système a besoin des bibliothèques HIP de l'espace utilisateur pour communiquer avec le pilote du noyau.
Arch Linux / CachyOS :
sudo pacman -S rocm-hip-runtime
Ubuntu / Debian :
sudo apt install rocm-hip-runtime
Fedora :
sudo dnf install rocm-hip-runtime
Permissions d'accès au GPU : Votre utilisateur doit appartenir aux groupes
renderetvideo. Vérifiez avec :groupsSi l'un des groupes est manquant, ajoutez-vous :
sudo usermod -aG video,render $USERVous devez vous déconnecter et vous reconnecter complètement (ou redémarrer) pour que le changement de groupe prenne effet.
Étape 2 - Installer rocm-smi (peut être optionnel)
Sur les distributions à évolution rapide comme Arch, les outils de gestion ne sont pas toujours inclus comme dépendance stricte de rocm-hip-runtime. Installez-les explicitement pour éviter les conflits de versions de bibliothèques.
Arch Linux / CachyOS :
sudo pacman -S rocm-smi-lib
Ubuntu / Debian :
Debian sépare l'outil en ligne de commande et sa bibliothèque d'exécution en paquets distincts.
# Outil de surveillance en ligne de commande
sudo apt update && sudo apt install rocm-smi
# Bibliothèques d'exécution
sudo apt update && sudo apt install librocm-smi64-1
Conseil : Si le nom exact du paquet est incertain, tapez
sudo apt install librocm-smi64et appuyez sur Tab pour compléter automatiquement le suffixe de version actuel.
Fedora :
# Outil CLI
sudo dnf install rocm-smi
# Bibliothèques de développement C/C++ et en-têtes (équivalent à rocm-smi-lib sur Arch)
sudo dnf install rocm-smi-devel
Exécuter un modèle
Étape 3 - Charger un modèle avec l'accélération ROCm
Lors de l'invocation de lms load, passez explicitement les indicateurs d'accélération matérielle. L'indicateur --gpu max demande à l'environnement d'exécution de charger l'intégralité du modèle dans la VRAM.
HSA_OVERRIDE_GFX_VERSION=11.0.0 lms load tulu-3.1-8b-supernova --context-length 8192 --gpu max
Le préfixe HSA_OVERRIDE_GFX_VERSION=11.0.0 indique à la pile ROCm de traiter le RX 7800 XT comme une cible de calcul nativement prise en charge, évitant ainsi les échecs silencieux de repli.
Étape 4 - Rendre la configuration permanente
Pour éviter de préfixer chaque commande avec la variable d'environnement, ajoutez-la à votre profil de shell.
Bash :
echo 'export HSA_OVERRIDE_GFX_VERSION=11.0.0' >> ~/.bashrc
source ~/.bashrc
Fish (défaut CachyOS) - Option A : Variable universelle (recommandée)
Définissez-la une fois ; Fish la conserve automatiquement entre les redémarrages sans configuration supplémentaire :
set -Ux HSA_OVERRIDE_GFX_VERSION 11.0.0
Fish - Option B : Entrée explicite dans le fichier de configuration
echo 'set -gx HSA_OVERRIDE_GFX_VERSION 11.0.0' >> ~/.config/fish/config.fish
source ~/.config/fish/config.fish
Ollama (service systemd) :
Comme Ollama s'exécute sous son propre utilisateur système ollama, la variable doit être injectée via un drop-in systemd :
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo nano /etc/systemd/system/ollama.service.d/override.conf
Collez ce qui suit, puis sauvegardez et quittez (Ctrl+O, Entrée, Ctrl+X) :
[Service]
Environment="HSA_OVERRIDE_GFX_VERSION=11.0.0"
Puis rechargez et redémarrez le service :
sudo systemctl daemon-reload
sudo systemctl restart ollama
Vérification
Étape 5 - Confirmer que le pilote de calcul du noyau est chargé
Si une commande se bloque, la couche de calcul du noyau (amdkfd) n'est peut-être pas initialisée. Vérifiez si le système expose votre GPU en tant que plateforme de calcul ROCm :
rocminfo
Faites défiler jusqu'en haut de la sortie. Si vous voyez Can't open /dev/kfd ou un crash, le noyau Linux n'expose pas l'interface de calcul à l'espace utilisateur. Si vous utilisez un noyau personnalisé ou de pointe, essayez de démarrer avec le noyau standard ou LTS (linux-lts) pour exclure une régression de pilote.
Étape 6 - Démarrer le serveur et vérifier l'utilisation de la VRAM
LM Studio :
lms server start
Ollama :
ollama serve
Puis confirmez que le modèle est chargé en VRAM :
rocm-smi
En veille (aucun modèle chargé) :

En veille, le GPU consomme une puissance minimale (9W), les horloges sont proches du plancher, et l'utilisation de la VRAM est faible (44%).
Sous charge (modèle + jeu en cours simultanément) :

Sous charge combinée, vous devriez observer une augmentation significative de l'utilisation de la VRAM (71% dans cet exemple), une hausse de l'utilisation du GPU et une augmentation de la consommation électrique (~147W). Cela confirme que le modèle réside en VRAM et que l'inférence s'exécute sur le GPU.