Comment utiliser Ollama avec un GPU NVIDIA pour booster vos performances sur Proxmox

Ollama et la montée de l’intelligence artificielle générative locale bouleversent le quotidien du professionnel IT. Pourquoi investir dans une infrastructure virtualisée si elle n’exploite pas tout le potentiel de votre GPU NVIDIA ? Nombre d’architectures traînent encore des bottlenecks, alors qu’en tirant parti de l’accélération matérielle dans Proxmox, les modèles LLM tournent bien plus vite, à moindre coût. Au-delà de la théorie, la clé réside dans la configuration concrète du passthrough GPU, souvent jugée complexe, mais qui, une fois comprise, déverrouille un terrain de jeu sans limite pour l’optimisation et l’automatisation avancée. Ce guide déroule les étapes cruciales et les astuces de praticien pour transformer un simple serveur en powerhouse de l’IA générative.

Configurer Ollama avec un GPU NVIDIA : bases et prérequis techniques pour Proxmox

Dans un contexte où les charges de travail en machine learning et en intelligence artificielle exigent toujours plus de réactivité, utiliser Ollama avec une carte NVIDIA dans un environnement Proxmox devient une évidence pour tout passionné de virtualisation désireux d’accélérer ses flux. Mais l’affaire n’est pas qu’une histoire de pilotes ou de versions : tout commence par un inventaire précis de vos ressources matérielles et logicielles.

La première règle est claire : toutes les cartes NVIDIA ne se valent pas. Vérifiez systématiquement si votre modèle de GPU possède un compute capability de 5.0 ou supérieur (la liste officielle de NVIDIA est assez vaste en 2025, mais mieux vaut jeter un œil rapide si votre GTX 1660 fait le job ou pas). Cette compatibilité, souvent ignorée, conditionne la réussite de tout le reste. Le support logiciel suit, obligeant à jongler habilement entre la version de Proxmox (7.X minimum vivement recommandée) et celle de l’OS invité (Debian ou Ubuntu 22.04/24.04, selon le package Ollama ciblé).

Du côté des pilotes, le couple gagnant reste :

  • Pilotes NVIDIA derniers drivers propriétaires (530+)
  • Ollama dernière version stable (préférer le script officiel plutôt que les dépôts de package souvent en retard)
  • CUDA Toolkit uniquement si vous développez en parallèle – inutilisé par Ollama, il peut parfois aider à la vérification

Mais là où tout se joue, c’est sur la préparation de Proxmox à accepter le PCI passthrough. L’activation de l’IOMMU n’est pas optionnelle et passe rarement du premier coup sans ajuster les options de boot (spécifiquement intel_iommu=on ou amd_iommu=on, selon le cas). N’oubliez pas de vérifier la prise en charge de la virtualisation VT-d/AMD-Vi dans le BIOS/UEFI, souvent désactivée par défaut, surtout sur des serveurs récupérés ou recyclés.

Il serait naïf de penser qu’une simple activation suffit. Plusieurs points de friction subsistent : conflits de ressources, mauvaise attribution des groupes IOMMU ou historique de cartes passées entre différents slots PCI. Un diagnostique rapide grâce à lspci -nnv dévoile souvent de petits blocages à régler par un swap de slot ou une exclusion dans le blacklist kernel. Même topo côté OS invité : la VM doit être en UEFI (voire OVMF pour gérer la mémoire du GPU), bénéficier d’au moins 16 Go de RAM et 8 vCPU pour exploiter les modèles lourds.

Voici donc votre checklist de départ :

  • Carte NVIDIA compute capability 5.0+
  • Proxmox ≥ 7.X ; OS invité à jour (recommandé : Ubuntu 22.04/24.04 ou Debian 12)
  • Activation VT-d/AMD-Vi + IOMMU
  • Dernier pilote NVIDIA supporté (évitez les versions beta qui cassent l’isolation PCI)
  • VM configurée en UEFI, >16Go RAM, >8 vCPU pour les LLM complexes
  • Dernière release Ollama

Assez théorique, mais incontournable. Le vrai jeu commence dès la configuration Proxmox dans les règles.

Optimiser la base logicielle et matérielle pour les usages IA sur Proxmox

Le plus fréquent, c’est de voir des professionnels mettre en place leurs piles logicielles, puis découvrir tardivement que les modèles Ollama plafonnent à 50% de leur potentiel faute de bons réglages bas niveau. Un exemple parlant : avec une RTX 3060, le doublement de performance a été observé entre un kernel sans PCIe passthrough natif et un kernel patché correctement, simplement grâce à l’allocation optimale du GPU.

Autrement dit, rien n’est plus frustrant que d’allouer un GPU que le système virtualisé ne voit pas. Les causes sont connues : mauvaise version du hyperviseur, conflits dans le mapping des PCI, pilotes non signés ou blacklistés, mauvais paramétrage UEFI d’une VM, etc. Pour chaque problème, une astuce existe, et c’est la chasse à la faille logique qui fait tout l’intérêt de ce chantier ultraspécialisé.

Déployer Ollama sous Ubuntu/Debian et activer la pleine accélération GPU NVIDIA dans Proxmox

Déployer Ollama sous Ubuntu/Debian et activer la pleine accélération GPU NVIDIA dans Proxmox

Une fois la base solidement posée, l’étape cruciale consiste à configurer le passthrough PCI du GPU NVIDIA vers la machine virtuelle supportée par Proxmox. Là encore, les chemins classiques aboutissent souvent à des erreurs, mais certaines séquences “non supportées officiellement” fonctionnent en prod depuis des mois.

La procédure typique démarre par l’activation de l’IOMMU dans le bootloader. Modifiez le fichier /etc/default/grub pour inclure intel_iommu=on ou amd_iommu=on dans la ligne commande GRUB, puis mettez à jour avec update-grub. Considérez aussi l’ajout de vfio-pci dans la blacklist pour prévenir toute utilisation du GPU hors VM.

La séquence qui “sauve la mise” quand le GPU refuse de passer :

  • Lancer un lspci -nnv | grep -i nvidia pour obtenir l’identifiant exact
  • Éditer la configuration de la VM dans /etc/pve/qemu-server/XXX.conf et y intégrer la ligne hostpci0: 01:00,pcie=1 avec les bons IDs
  • Éventuellement, purger les restes NVIDIA dans le système hôte (une étape souvent omise, qui évite les conflits de kernel)

Sur l’OS invité (Ubuntu ou Debian conseillé ici), téléchargez les drivers NVIDIA :

  • Mettre à jour les dépôts (sudo apt update && sudo apt upgrade)
  • Installer les headers du kernel (sudo apt install linux-headers-$(uname -r))
  • Lancer le script d’installation NVIDIA : wget https://fr.download.nvidia.com/ … ; chmod +x NVIDIA-Linux-x86_64-xxx.run ; sudo ./NVIDIA-Linux-x86_64-xxx.run

Un souci fréquent : le kernel lock, qui empêche l’installation correcte. Ici, il suffit parfois de désactiver le service nouveau (driver open-source) et de blacklister tout module concurrentif.

Pour Ollama, la méthode qui évite tous les conflits :

  • Télécharger et exécuter le script officiel : curl -fsSL https://ollama.com/install.sh | sh
  • Lancer le serveur Ollama : ollama serve
  • Puis tirer un modèle compatible GPU, ex : ollama pull gemma2:2b

Petit secret d’initié : pour vérifier que le GPU est bien exploité, croisez les retours de nvidia-smi (doit lister un processus Ollama) et de ollama logs (doit évoquer l’allocation CUDA). Si la RAM GPU chauffe, pari gagné.

Automatiser la détection du GPU et benchmarker Ollama sous Proxmox

La réussite se mesure par la stabilité du système et la rapidité de l’inférence. Un script bash basique lancé à chaque boot permet :

  • De vérifier la présence NVIDIA (nvidia-smi + statut vert)
  • De remonter des alertes sur la RAM GPU si saturation (idéal pour affiner l’allocation mémoire des VM)
  • De générer un benchmark Ollama en local, pour prouver le bond de performances

Une mesure empirique après déploiement sur Proxmox (RTX 3060, Ubuntu 24.04) affiche des temps de réponse divisés par cinq en génération LLM, dès lors que l’allocation CPU suit la puissance du GPU.

Résoudre les problèmes courants et affiner les performances d’Ollama en virtualisation avancée

Tout projet de virtualisation avancée rencontre ses défis. Avec Ollama et le GPU NVIDIA, la chasse aux goulets d’étranglement et aux incompatibilités logicielles commence. Les plantages à l’initialisation GPU, les VM qui refusent la charge ou les drivers récalcitrants n’ont rien de rare. Pourtant, un audit rigoureux permet d’anticiper et d’aplatir ces obstacles, en s’appuyant sur des méthodes éprouvées et, parfois, quelques astuces non documentées.

Le PCI passthrough échoue ? Bien souvent, le groupe IOMMU du GPU contient aussi un autre périphérique non-isolable (audio HDMI NVIDIA, port USB sur la même carte mère, etc). La parade : déplacer le GPU ou ajuster le BIOS pour forcer le split de groupes PCI. Excluez tout module NVIDIA du kernel hôte pour éviter les conflits de ressources (ajout dans /etc/modprobe.d/blacklist.conf : blacklist nouveau et blacklist nvidia). Toujours redémarrer intégralement la machine après modification.

Des soucis de drivers NVIDIA dans la VM ? Ne tentez pas d’installer les drivers via le gestionnaire graphique (souvent source de kernel panic), mais passez impérativement par le .run officiel, en veillant à bien utiliser les headers exacts de votre noyau. Le mode root reste obligatoire pour l’installation complète des modules kernel.

S’allouer plusieurs CPU ou plus de RAM ? Cela booste réellement l’efficacité sur des gros jeux de données ou des inférences complexes. L’optimisation sur Proxmox passe par la configuration suivante :

  • Allouer 16 Go de mémoire minimum et 8 vCPU pour les projets sérieux
  • Prévoir un disque SSD dédié à la machine virtuelle (les accès disque piétinent la génération IA sur HDD)
  • Étendre la mémoire GPU si plusieurs modèles doivent tourner en parallèle via Ollama
  • Monitorer l’activité GPU constamment via nvidia-smi et anticiper le throttling

Côté logiciels, Ollama admet de nombreux profils de modèles, mais tous ne saturent pas de la même façon le GPU. N’hésitez pas à ajuster le batch size et les threads via les variables d’environnement Ollama (OLLAMA_THREADS, OLLAMA_BATCH_SIZE). Cela permet de jongler entre rapidité et stabilité en production, sans basculer dans l’outrance qui génère des OOM (Out Of Memory) silencieux. Pensez aussi à automatiser la rotation des logs, car un Ollama laissé sans surveillance génère rapidement des fichiers volumineux.

Cas concrets : problèmes trouvés, solutions appliquées sur le terrain

Sur un cluster Proxmox de Turing Technologies (cas fictif typique), l’équipe a perdu deux semaines à cause d’un simple oubli de paramètre kvm=on sur la VM : résultat, la carte NVIDIA restait totalement invisible côté invité. Autre exemple : sur une série de VM Ubuntu, les kernel panic à l’installation NVIDIA provenaient du fait que DKMS n’était pas à jour, la correction ayant été de forcer une mise à jour (sudo apt install –reinstall dkms).

  • Mémoire GPU saturée ? Réduisez le batch de génération LLM
  • VM instable au boot ? Passez à l’option Q35 pour le machine type dans la conf Proxmox
  • Ollama lent malgré tout ? Vérifiez la présence de tâches annexes utilisant la RAM du GPU (parfois, un processus zombie s’y loge, détectable via nvidia-smi dmon)
  • Problème de compatibilité ? Vérifiez les logs Ollama avant de tout casser : neuf fois sur dix, c’est une variable d’environnement mal déclarée

En résumé, la réussite se joue sur la persévérance et la capacité à accommoder la configuration à l’usage réel, pas selon la doc officielle. Les retours de terrain montrent que chaque nouvel obstacle camoufle une solution détournée, qui finit par accélérer la productivité et l’innovation sur l’infrastructure IA locale.

Marius
Suivez Moi

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *