NVLink, l’interconnexion GPU à large bande passante de NVIDIA, révolutionne les charges de travail multi-GPU en permettant un partage de mémoire et un transfert de données rapides, dépassant de loin les limitations PCIe. Pour les data scientists, les ingénieurs ML ou les utilisateurs HPC, NVLink peut accélérer des tâches telles que l’entraînement de modèles d’apprentissage profond ou les simulations à grande échelle. Par exemple, vous pouvez utiliser NVLink avec deux GPU A100 pour entraîner plus rapidement un grand modèle de langage en mettant en commun la mémoire du GPU. Cependant, la configuration de NVLink dans un environnement virtualisé est complexe et nécessite un matériel et une configuration spécifiques. Ce guide explique NVLink, ses limites dans un VPS et comment le configurer pour des performances optimales.
Tous les fournisseurs de SDV ne prennent pas en charge les configurations NVLink.
Seules les machines virtuelles basées sur le bare-metal ou les machines virtuelles dédiées au GPU avec passage direct permettent à NVLink de fonctionner.
NVLink n’est pas pris en charge dans les environnements conteneurisés tels que Docker, sauf s’ils sont exécutés directement sur l’hôte.
NVLink permet à deux ou plusieurs GPU NVIDIA compatibles de :
Partager la mémoire entre les GPU pour les grands ensembles de données
Échanger des données avec une bande passante totale pouvant atteindre 600 Go/s
Effectuer un entraînement multi-GPU plus rapide sans intervention du CPU
Pris en charge sur des GPU tels que :
NVIDIA A100, V100, RTX 3090, 4090, A6000, etc.
Nécessite généralement un pont NVLink physique
Avant d’essayer de configurer NVLink sur un VPS, vérifiez les points suivants :
Le serveur physique doit avoir
Au moins deux GPU compatibles NVLink
Un ou plusieurs ponts NVLink installés
Un BIOS et un firmware qui prennent en charge NVLink
Les configurations compatibles les plus courantes comprennent un double A100 ou une RTX 3090 avec un pont NVLink.
Le VPS doit être provisionné sur un hyperviseur compatible avec le GPU passthrough, comme :
KVM/QEMU avec VFIO (PCI passthrough)
VMware ESXi avec DirectPath I/O
Proxmox VE avec GPU passthrough
⚠️ Remarque : NVLink ne fonctionne pas sur les périphériques virtualisés à moins que les deux GPU ne soient transmis en tant que périphériques PCIe complets à la même VM.
L’hôte doit transmettre les deux GPU physiques directement à votre VPS.
Pour KVM/QEMU avec VFIO :
Mettez à jour libvirt ou qemu XML pour faire passer les deux GPU.
Dans le VPS (système d’exploitation invité), installez le dernier pilote NVIDIA:
Redémarrez après l’installation.
Une fois dans le système d’exploitation invité :
Vous devriez voir :
GPU0 | GPU1 | Affinité avec le CPU | |
GPU0 | X | NV1 | 0-15 |
GPU1 | NV1 | X | 0-15 |
Où NV1 signifie que NVLink est actif entre GPU0 et GPU1.
Assurez-vous que les options Peer-to-Peer et Access sont toutes deux marquées comme Enabled (activées).
Accès isolé: Assurez-vous que votre VPS n’est pas sursouscrit ou co-hébergé avec d’autres lorsque vous utilisez le GPU passthrough complet.
Pas de fuite de mémoire partagée: NVLink crée un espace de mémoire partagée dont l’accès est limité aux environnements de confiance.
Auditer l’accès aux périphériques /dev/nvidia*.
Symptôme | Cause possible | Correction |
---|---|---|
NVLink n’apparaît pas dans nvidia-smi | Les GPU ne sont pas pontés correctement | Mettre l’hôte hors tension et réinstaller le pont NVLink physique |
Un seul GPU visible | Mauvaise configuration du passthrough | Vérifier les paramètres XML/device passthrough de la VM |
Peer-to-peer désactivé | Mauvaise adaptation du pilote ou des paramètres du BIOS | Mettre à jour le pilote, vérifier la prise en charge de NVLink par le BIOS |
Faible bande passante | Les voies NVLink sont sous-utilisées | Utilisez nvidia-smi nvlink –status pour vérifier les voies |
NVLink change la donne pour les charges de travail intensives en GPU, offrant d’immenses avantages en termes de performances lorsqu’il est correctement configuré, même dans les environnements virtuels. Avec un passage direct du GPU et une configuration soignée, vous pouvez exploiter la puissance des interconnexions multi-GPU sur un VPS, le transformant en un nœud de calcul haute performance pour les applications exigeantes.