NVLink è l’interconnessione ad alta larghezza di banda ed efficienza energetica di NVIDIA per il collegamento di più GPU, che offre una larghezza di banda di comunicazione significativamente superiore rispetto al PCIe tradizionale. Per gli scienziati dei dati, gli ingegneri del ML e gli utenti del calcolo ad alte prestazioni (HPC), NVLink offre una condivisione della memoria delle GPU senza soluzione di continuità, riducendo i colli di bottiglia e consentendo una formazione e un’inferenza più rapide.
Ma è possibile utilizzare NVLink in un VPS? La risposta è sì, ma con importanti avvertenze. Analizziamo cos’è NVLink, come configurarlo e cosa è necessario per farlo funzionare in un ambiente server virtualizzato.
Non tutti i fornitori di VPS supportano le configurazioni NVLink.
Solo le VPS basate su bare-metal o le macchine virtuali con GPU dedicate con passthrough diretto consentono il funzionamento di NVLink.
Non è possibile supportare NVLink in ambienti containerizzati come Docker, a meno che non venga eseguito direttamente sull’host.
NVLink permette a due o più GPU NVIDIA compatibili di:
Condividere la memoria tra le GPU per i dataset di grandi dimensioni
Scambiare dati con una banda passante totale fino a 600 GB/s
Eseguire allenamenti multi-GPU più rapidi senza coinvolgere la CPU
Supportato da GPU come:
NVIDIA A100, V100, RTX 3090, 4090, A6000, ecc.
Di solito richiede un ponte NVLink fisico
Prima di tentare di configurare NVLink su un VPS, è necessario verificare quanto segue:
Il server fisico deve avere:
Almeno due GPU compatibili con NVLink
Bridge NVLink installato
BIOS e firmware che supportino NVLink
Le configurazioni compatibili più comuni includono due A100 o RTX 3090 con bridge NVLink.
Il VPS deve essere fornito con un hypervisor abilitato al GPU Passthrough, come ad esempio:
KVM/QEMU con VFIO (PCI passthrough)
VMware ESXi con DirectPath I/O
Proxmox VE con GPU passthrough
⚠️ Nota: NVLink non funziona tra i dispositivi virtualizzati a meno che entrambe le GPU non vengano passate come dispositivi PCIe completi alla stessa VM.
L’host deve passare entrambe le GPU fisiche direttamente al VPS.
Per KVM/QEMU con VFIO:
Aggiornare libvirt o qemu XML per far passare entrambe le GPU.
All’interno del VPS (sistema operativo guest), installare il driver NVIDIA più recente:
Riavviare dopo l’installazione.
Una volta all’interno del sistema operativo guest:
Si dovrebbe vedere:
GPU0 | GPU1 | Affinità della CPU | |
GPU0 | X | NV1 | 0-15 |
GPU1 | NV1 | X | 0-15 |
Dove NV1 significa che NVLink è attivo tra GPU0 e GPU1.
Assicurarsi che Peer-to-Peer e Accesso siano entrambi contrassegnati come abilitati.
Accesso isolato: Assicuratevi che il vostro VPS non sia oversubscribed o co-hosted con altri quando usate il passthrough completo della GPU.
Nessuna perdita di memoria condivisa: NVLink crea uno spazio di memoria condivisa che limita l’accesso agli ambienti affidabili.
Controllare l’accesso ai dispositivi /dev/nvidia*.
Sintomo | Possibile causa | Correzione |
---|---|---|
NVLink non viene visualizzato in nvidia-smi | Le GPU non sono collegate correttamente al bridge | Spegnere l’host e reinstallare il bridge NVLink fisico |
Solo una GPU visibile | Configurazione errata del passthrough | Controllare le impostazioni XML della macchina virtuale/device passthrough |
Peer-to-peer disabilitato | Errore nel driver o nelle impostazioni del BIOS | Aggiornare il driver, controllare il BIOS per il supporto NVLink |
Bassa larghezza di banda | Corsie NVLink sottoutilizzate | Usare nvidia-smi nvlink –status per verificare le corsie |
NVLink è una svolta per i carichi di lavoro ad alta intensità di GPU e offre immensi vantaggi in termini di prestazioni quando viene configurato correttamente, anche negli ambienti virtuali. Con il passthrough diretto della GPU e un’attenta configurazione, è possibile sfruttare la potenza delle interconnessioni multi-GPU su un VPS, trasformandolo in un nodo di elaborazione ad alte prestazioni per le applicazioni più esigenti.