Cos'è una Scheda Grafica Virtuale (vGPU)?
Una scheda grafica virtuale (vGPU) è una GPU emulata via software che presenta un'interfaccia grafica standard (OpenGL, Vulkan, DirectX, CUDA) a un sistema operativo guest o applicazione, mentre esegue il rendering su risorse host condivise (CPU, RAM di sistema, o una GPU fisica tramite SR-IOV / pass-through mediato).
Tipi di Architettura
| Tipo | Come Funziona | Prestazioni | Caso d'Uso |
|---|---|---|---|
| Renderer Software (llvmpipe, SwiftShader) | CPU esegue shader JIT → framebuffer in RAM | Basso (OpenGL 4.x, nessuna accelerazione HW) | CI headless, thin client, VM senza GPU |
| GPU Virtualizzata (NVIDIA vGPU, AMD MxGPU, Intel GVT-g) | GPU fisica partizionata tramite SR-IOV / pass-through mediato; ogni VM riceve un dispositivo PCIe virtuale | Quasi nativo (supporto API completo) | VDI, cloud gaming, notebook AI/ML, CAD |
| Remoting API (Virgl, DXGK) | Driver guest traduce chiamate API → driver host esegue | Moderato (latenza, subset di funzionalità) | VM Linux su Windows/macOS, Chrome OS Crostini |
Limitazioni Chiave vs GPU Fisica
- Nessuna VRAM dedicata — usa RAM di sistema (più lenta, condivisa).
- Overhead CPU per gestione buffer di comando.
- Lacune funzionali: ray tracing, core tensor, codifica/decodifica video spesso non disponibili o lenti.
- Licenza: NVIDIA vGPU richiede licenza per VM ($10–$50/mese).
Quando Usarla
- VDI / DaaS (VMware Horizon, Citrix, Azure Virtual Desktop) — molti utenti, una GPU.
- Pipeline CI/CD che necessitano test GPU senza hardware fisico.
- Dispositivi edge / thin client senza slot PCIe.
- Ambienti di sviluppo dove la GPU è opzionale.