NVLink est l’interconnexion haute bande passante et économe en énergie de NVIDIA pour relier plusieurs GPU, fournissant une bande passante de communication nettement plus élevée que le PCIe traditionnel. Pour les data scientists, les ingénieurs ML et les utilisateurs de calcul haute performance (HPC), NVLink offre un partage transparent de la mémoire des GPU, réduisant les goulots d’étranglement et permettant un entraînement et une inférence plus rapides.
Mais pouvez-vous utiliser NVLink dans un VPS ? La réponse est oui, mais avec d’importantes mises en garde. Voyons ce qu’est NVLink, comment le configurer et ce qui est nécessaire pour qu’il fonctionne dans un environnement de serveur virtualisé.
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 un 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. Grâce à un passage direct du GPU et à une configuration minutieuse, vous pouvez exploiter la puissance des interconnexions multi-GPU sur un VPS et le transformer en un nœud de calcul haute performance pour les applications exigeantes.