
Libérer vos cartes graphiques pour l'IA, et jouer quand même
Une carte graphique qui pilote votre écran garde une partie de sa mémoire pour le bureau, le navigateur, le compositeur. Sur une machine IA, chaque gigaoctet compte. La solution ne coûte rien : laisser le GPU intégré du processeur dessiner le bureau, et garder les cartes NVIDIA pour le calcul. Les jeux tournent toujours sur la grosse carte, par PRIME offload ou par un second câble.
Ce que fait la nôtre
Un processeur Ryzen avec GPU intégré, deux cartes NVIDIA (RTX 5080 et RTX 4070 Ti SUPER). L'écran est branché sur la carte mère. Les deux cartes NVIDIA affichent Display Disabled : leur mémoire ne contient que des modèles.
nvidia-smi --query-gpu=name,display_active,memory.used --format=csv
1. Mettre le bureau sur le GPU intégré
- Dans le firmware (BIOS), gardez le GPU intégré actif même en présence d'une carte. L'option s'appelle souvent iGPU Multi-Monitor ou Integrated Graphics : Force.
- Branchez l'écran sur la sortie de la carte mère, pas sur une carte graphique.
- Redémarrez et vérifiez avec la commande ci-dessus :
display_activedoit valoirDisabledsur chaque carte NVIDIA.
2. Jouer : deux façons
Option A, PRIME render offload. Le jeu est calculé sur la carte NVIDIA, et ses images sont copiées vers le GPU intégré qui pilote l'écran. Un seul câble, rien à basculer. Dans Steam, clic droit sur le jeu → Propriétés → Options de lancement :
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only %command%
Les deux premières variables envoient OpenGL vers NVIDIA ; la troisième ne laisse voir que les cartes NVIDIA à Vulkan, qu'utilise Proton. Certaines distributions fournissent un raccourci prime-run qui pose les mêmes variables. Avec deux cartes NVIDIA, vous pouvez imposer celle que choisit DXVK : DXVK_FILTER_DEVICE_NAME="RTX 5080".
Option B, un second câble. Branchez aussi la carte NVIDIA sur une seconde entrée du même écran, et changez d'entrée pour jouer. Pas de copie d'images : pleine performance et taux de rafraîchissement variable (VRR), au prix d'un bouton à presser sur l'écran.
Nous avons pesé les deux : la copie de l'option A coûte quelques images par seconde et peut casser le VRR. Pour les jeux rapides, l'option B ; pour le reste, l'option A est plus simple.
3. Rendre la carte au jeu, automatiquement
Si les modèles remplissent la carte, le jeu n'y tiendra pas. Chez nous, un petit veilleur tourne : toutes les 5 secondes, il cherche le processus reaper de Steam, qui existe exactement pendant qu'un jeu tourne. Quand il apparaît, le veilleur lance un service qui décharge les modèles de la 5080 ; quand il disparaît, le service s'arrête et les modèles reviennent.
pgrep -x reaper # nom exact : un motif large attraperait le veilleur lui-même
Pièges que nous avons payés
Un chemin automatique que personne ne surveille casse en silence. Notre veilleur a un jour appelé une commande supprimée quatre jours plus tôt : il échouait à chaque partie, la carte n'était jamais rendue, et personne ne le savait. Versionnez ces scripts, testez-les, et faites-les signaler leurs échecs.
Souvenez-vous d'où vous venez. Notre première version rechargeait toujours les modèles par défaut après une partie, même quand la carte avait été libérée exprès pour autre chose. Le veilleur mémorise maintenant l'état d'avant et restaure exactement celui-là.
N'arrêtez jamais un modèle sous un travail en cours pour faire de la place à un jeu : vérifiez d'abord que la carte est au repos.
Utile ? Dites-nous ce qu'il faut mesurer ensuite.