Casa Impresa Guida vGPU Proxmox: la tua GPU merita più di un semplice passthrough

Guida vGPU Proxmox: la tua GPU merita più di un semplice passthrough

by Andrea Waag

Scopri come configurare Proxmox vGPU per AI, VDI e rendering con istruzioni dettagliate su installazione, test e prestazioni.

Proxmox Server Solutions ha annunciato di recente il supporto NVIDIA vGPU per il suo hypervisor Virtual Environment (VE), aprendo le porte a un mondo completamente nuovo di accelerazione GPU per rendering, VDI, AI e altre applicazioni. Unisciti a noi mentre esaminiamo e ti guidiamo attraverso il nuovo set di funzionalità dell'hypervisor e ne valutiamo le prestazioni.

Qual è il problema con il supporto vGPU?

Se non hai familiarità con il software vGPU di NVIDIA, consente di partizionare e distribuire le risorse di elaborazione e memoria di una GPU tra più macchine virtuali (VM). In questa configurazione, le VM si alternano nell'uso della potenza di elaborazione della GPU e assegnano una parte della memoria della scheda per le proprie esigenze. Questo approccio consente alla GPU di mantenere un utilizzo di picco, anche quando i carichi di lavoro delle VM guest variano in intensità.

Installazione Proxmox vGPU L40S

Prima di iniziare… (Prerequisiti)

Avrai bisogno di alcune cose prima di avviare un ambiente di virtualizzazione GPU in Proxmox VE (PVE). Come molti gadget dei data center, il software vGPU di NVIDIA non è gratuito. Avrai bisogno di Acquista or iscriviti alla versione di valutazione del loro software GPU virtuale e creare un account NVIDIA Enterprise. Successivamente, devi ottenere un Scheda compatibile con vGPU e scaricare i driver appropriati dal portale delle licenze. Prendi le versioni correnti dei driver "Linux KVM". Come minimo, scarica questi:

  • Software vGPU: 18.0
  • Driver host: 570.124.03
  • Driver ospite Linux: 570.124.06
  • Driver ospite di Windows: 572.60

Per questo progetto abbiamo utilizzato la NVIDIA L40S e un Dell PowerEdge R760.

GPU NVIDIA Proxmox vGPU

Inoltre, avrai bisogno di un server di licenze dedicato (DLS) o di un server di licenze cloud (CLS) per attivare la funzionalità vGPU sui tuoi guest. Puoi trovare una guida rapida cliccando su qui.

Successivamente, verifica che le impostazioni UEFI (BIOS) del tuo server abilitino le funzionalità di virtualizzazione appropriate. Cerca VT d or amd v, SR-IOV, sopra la decodifica 4G, barra ridimensionabile e Interpretazione dell'ID di routing alternativo (ARI) impostazioni e assicurati che siano tutte abilitate.

Nota: Potresti non trovare tutte queste funzionalità nel menu UEFI, poiché alcune potrebbero non essere visibili all'utente.

Infine, verifica di utilizzare una versione adatta di Proxmox VE. La funzionalità vGPU richiede, come minimo, la versione 8.3.4 di pve-manager, con kernel 6.18.12-8-pve o più recente. Puoi controllare le versioni software del tuo nodo PVE navigando alla scheda "Summary" sul server desiderato, come mostrato di seguito:

Interfaccia Proxmox vGPU VE 1

L'host con la maggior parte (configurazione vGPU dell'host Proxmox)

Ora che tutto è pronto, è il momento di configurare il server Proxmox VE. Nell'interfaccia web del server Proxmox VE, fai clic sul nome del server sul lato sinistro dello schermo e seleziona la scheda "Shell". Digita questo comando nella finestra della console che appare e premi Invio al termine:

apt installare pve-nvidia-vgpu-helper

Ciò garantirà che lo strumento di configurazione vGPU sia installato sul tuo server, preparandolo per il supporto vGPU di Proxmox. Dopo che il server ha terminato di installare lo script o ti ha informato che è già presente, esegui un altro comando per eseguire lo strumento.

configurazione pve-nvidia-vgpu-helper

Rispondi "Y" a tutte le domande e procedi finché non torna la finestra della console e lo script non è terminato. Esegui un rapido riavvio del server navigando alla scheda "Summary" del server e premendo il pulsante "Reboot", oppure digita il comando di riavvio nella scheda "Shell" della console e premi Invio.

Successivamente, il driver host vGPU di NVIDIA deve essere caricato sul server. Dopo che il server ha completato il riavvio, utilizzare uno strumento di trasferimento SSH o SCP come WinSCP per copiare il driver host sul nodo.

Nota: Se hai scaricato tutti i driver insieme come una cartella compressa (.zip), potrebbe essere necessario estrarne prima il contenuto e scegliere il file ".run" dalla cartella "Host_Drivers".

Posizionare il file nella directory “/home” del server e prepararsi a eseguire il programma di installazione con i seguenti comandi.

Per eseguire questa operazione, digitare il comando cd /home chown root NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run chmod +X NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run ./NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run --dkms

Nota: Sostituisci “NVIDIA-Linux-x86_64-570.124.03-vgpu-kvm.run” con il nome effettivo del driver che hai scaricato. Puoi usare il comando “ls” per mostrare il nome del file una volta che è stato inserito nella directory “/home”.

Ora che il driver è stato installato sul server, siamo a pochi passi dal completamento del lato host della configurazione vGPU di Proxmox! Prima di poter contrassegnare la GPU come dispositivo che può essere suddiviso tra macchine virtuali, dobbiamo abilitare Single Root I/O Virtualization (SR-IOV). NVIDIA definisce questa funzionalità come "...una tecnologia che consente a un dispositivo PCIe fisico di presentarsi più volte tramite il bus PCIe. Questa tecnologia consente più istanze virtuali del dispositivo con risorse separate". Poiché SR-IOV è un pezzo critico della tecnologia necessaria per la funzionalità vGPU di base sulle GPU moderne, impostalo in modo che si accenda all'avvio con il seguente comando:

systemctl abilita --ora [email protected]

Infine, possiamo mappare le risorse della GPU per dividerle ordinatamente tra le VM. Sull'interfaccia web del server Proxmox VE, clicca su "Datacenter" nell'angolo in alto a sinistra e scorri verso il basso per selezionare la scheda "Resource Mappings".

Fare clic sul pulsante "Aggiungi" sotto la sezione "Dispositivi PCI" della pagina e compilare il campo "Nome:" nella finestra successiva con il nome che descrive la GPU che si sta mappando.

Quindi, seleziona la casella etichettata "Usa con dispositivi mediati" e assicurati che il menu a discesa "Mappatura su nodo" contenga il server con la GPU che viene mappata. Scorri verso il basso l'elenco dei dispositivi, confermando che tutti gli ID dispositivo abbiano "NVIDIA Corporation" presente nella colonna "Fornitore". Se ciò è vero, fai clic sulla casella di controllo in alto a sinistra della tabella per selezionare tutti i dispositivi; in caso contrario, seleziona solo i dispositivi con "NVIDIA Corporation" come fornitore.

Nota: Se nel sistema sono installate più GPU, è possibile utilizzare il comando "lspci" nella scheda "Shell" sul server desiderato per determinare gli ID associati a ciascuna scheda.

Una volta terminata la selezione del dispositivo, fai clic sul pulsante "Crea" in basso a destra della finestra pop-up per confermare la selezione. La tua GPU NVIDIA è ora pronta per essere suddivisa in vGPU per gli ospiti del tuo server Proxmox VE!

Servizio agli ospiti (assegnazione di vGPU alle macchine virtuali)

I pezzi sono tutti al loro posto per iniziare ad assegnare e usare vGPU sulle nostre macchine virtuali. Inizia creando una nuova macchina virtuale, come al solito, o usando una VM esistente. Per la nostra dimostrazione, useremo una macchina virtuale Windows Server 2025.

Nell'interfaccia web del server Proxmox VE, arresta la macchina virtuale utilizzando il metodo che ritieni più opportuno (console noVNC, menu di accensione guest, ecc.) e fai clic sulla scheda "Hardware" del guest.

Nel menu a discesa che appare dopo aver cliccato sul pulsante “Aggiungi”, seleziona un “Dispositivo PCI”.

Nella finestra pop-up "Aggiungi: dispositivo PCI", seleziona il nome assegnato alla GPU mappata sulle risorse nel campo "Dispositivo:".

Quindi, fai clic sul campo "MDev Type:" e osserva l'elenco delle opzioni di tipo di dispositivo mediato presentate. Potresti notare che ogni scelta ha una designazione di numero e lettera. Il numero rappresenta la quantità di VRAM assegnata al guest (in gigabyte), mentre "A", "B" e "Q" si riferiscono al caso d'uso della vGPU:

  • Q – Workstation virtuali con driver RTX Enterprise (richiede licenza RTX vWS)
  • B – Desktop virtuali (richiede licenza NVIDIA Virtual PC o licenza RTX vWS)
  • A – Soluzioni applicative (richiede una licenza NVIDIA Virtual Applications)

Nota: Puoi leggere di più sui diversi profili vGPU e sulle licenze richieste qui.

Per questa dimostrazione, abbiamo utilizzato il profilo "NVIDIA L40S-12Q". Dopo aver selezionato il tipo di dispositivo mediato desiderato, termina selezionando la casella di controllo "PCI-Express" e cliccando sul pulsante blu "Aggiungi".

La VM ora ha una vGPU assegnata, ma dobbiamo ancora installare il driver guest e un token di licenza per far partire le cose. Ora puoi accendere la macchina virtuale e accedere.

Dopo aver effettuato l'accesso, trasferire il driver guest NVIDIA vGPU acquisito in precedenza dal portale delle licenze alla VM nel modo che preferisci (SMB, SCP, download diretto, ecc.). In alternativa, puoi creare e caricare un file CD-ROM virtuale (.iso) contenente il driver nell'archivio del tuo server PVE utilizzando un software come ImgBurn per distribuire contemporaneamente molti guest abilitati per vGPU.

Eseguire il file di installazione del driver facendo doppio clic sull'eseguibile e seguire le istruzioni nel menu di installazione visualizzato.

Estrarre il driver nella posizione predefinita nel campo "Percorso di estrazione:" e scegliere l'opzione di installazione "Express" quando richiesto.

Una volta completata l'installazione del driver, fare clic sul pulsante "CHIUDI" per uscire dal menu.

Successivamente, dovremo attivare la licenza vGPU sul guest. I metodi di attivazione possono variare notevolmente a seconda che tu selezioni un server di licenze dedicato (DLS) o un server di licenze cloud (CLS) e il tuo sistema operativo. Segui NVIDIA's Guida introduttiva al sistema di licenze e dell' Guida per l'utente delle licenze client per i passaggi dettagliati sull'attivazione dei client per la tua configurazione specifica.

Abbiamo utilizzato un server di licenze cloud e ricevuto un file token da posizionare sui guest per l'attivazione. Sposta questo file sul guest e copialo nella cartella "C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken".

Successivamente, per completare il processo di attivazione, è necessario riavviare il guest.

Seguendo tutti i passaggi di configurazione host e guest dettagliati qui, dovresti essere pronto a eseguire programmi e applicazioni che richiedono una GPU. Non dimenticare di abilitare il protocollo RDP (Remote Desktop Protocol) o di installare il tuo software desktop remoto preferito sui tuoi guest dopo il riavvio per goderti la bontà della visualizzazione remota accelerata dalla GPU!

Accelerare il motore (provando la vGPU Proxmox)

Ora che abbiamo alcuni server virtuali con GPU virtuali, facciamo un giro! Ognuna delle nostre VM è stata configurata con 8 vCPU Intel Xeon Platinum 8580 pinned (4 core hyperthreaded), 32 gigabyte di RAM ECC DDR5 4800 MT/s registrata e il profilo vGPU NVIDIA L40S-12Q (workstation virtuale) con 12 gigabyte di VRAM. Di seguito puoi vedere la configurazione hardware completa delle macchine virtuali:

Cinebench 2024

Basato sul software di modellazione e animazione Cinema 4D di Maxon, Cinebench 2024 offre uno sguardo interessante e obiettivo alle prestazioni di rendering su vGPU. Confrontiamo la potenza completa dell'L40S nel suo profilo "48Q" (tutti i 48 gigabyte di VRAM) con una macchina virtuale rispetto a quattro VM che eseguono il profilo "12Q".

Sebbene non abbia molto senso avere una macchina virtuale che monopolizza l'intero L40S, possiamo vedere che le prestazioni sono impressionanti con 21,147 punti nel benchmark GPU single-pass. Tuttavia, la suddivisione della GPU in quattro modi mostra l'impatto dell'approccio time-slicing di NVIDIA per la condivisione dei core CUDA della GPU, con punteggi individuali che vanno da 2,514 a 2,567 quando il benchmark è stato eseguito simultaneamente su tutte le VM.

Rieseguendo il test su una singola macchina virtuale con il profilo "12Q" e le altre tre VM inattive, il punteggio torna a 15,133. Non è esattamente un ritorno al punteggio della GPU completa, ma è comunque rispettabile per una vGPU partizionata.

Benchmark del frullatore

Continuiamo con altri benchmark di rendering con Blender. Seguendo tendenze simili a Cinebench 2024, la suddivisione della GPU in quattro modi determina prestazioni totali notevolmente inferiori rispetto a una singola macchina virtuale che esegue lo stesso carico di lavoro nello stesso profilo.

Come dimostrato nel benchmark Monster, solo quattro VM che condividono la potenza di calcolo della GPU significano che le prestazioni di rendering individuali possono essere pari a solo l'8% di una singola VM con lo stesso profilo. Tuttavia, abbiamo osservato una macchina virtuale guadagnare un bel vantaggio sulle altre, fino a 2.4 volte il punteggio della peggiore.

I benchmark Junkshop e Classroom raccontano storie simili, con grandi cali nelle prestazioni per tre delle quattro VM e un singolo guest che ha ottenuto un punteggio molto più alto degli altri.

È interessante notare che sembrano esserci brevi momenti in cui la vGPU di una macchina virtuale riceve una priorità più alta e assume un vantaggio significativo. Ad esempio, durante il benchmark Classroom, la nostra seconda VM Windows Server 2025 (WIN2025-2) ha ottenuto più del triplo delle prestazioni dei suoi pari nonostante fosse eseguita simultaneamente. Sebbene non possiamo stabilire con precisione se ciò sia dovuto alla pianificazione del software vGPU o alla natura della GPU stessa, evidenzia alcune stranezze nelle prestazioni sinonimo dell'approccio time-slicing-only di NVIDIA con questa scheda.

Conclusione

La configurazione e il supporto per il software vGPU di NVIDIA potrebbero non essere così raffinati come quelli di altre piattaforme concorrenti. Tuttavia, è una funzionalità entusiasmante e preziosa per le organizzazioni e gli homelabber che già eseguono sistemi Proxmox Virtual Environment. Sebbene le prestazioni siano notevolmente ridotte quando si suddividono le risorse GPU, molte organizzazioni sfruttano ancora la tecnologia vGPU di NVIDIA e hanno stabilito che la condivisione di una GPU compensa questo svantaggio. Questo atteggiamento è stato adottato da molti hyperscaler e data center con spazio limitato, dove stipare quanti più tenant possibile (in questo caso, macchine virtuali con vGPU) nel più piccolo spazio possibile è l'opzione più efficiente e redditizia.

La recente e rapida espansione di funzionalità di Proxmox Server Solutions come la rete definita dal software, il supporto per il kernel Linux 6.11 e un sistema di gestione del data center dedicato mostra progressi significativi e dimostra che sta diventando una scelta valida nell'arena degli hypervisor. Speriamo di vedere uno sviluppo continuo in questo spazio e non vediamo l'ora di raccontarvi di più sugli entusiasmanti strumenti e tecnologie che arriveranno presto su PVE!

Prossimo

Interagisci con StorageReview

Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | RSS feed