Vai al contenuto principale

Concetti — GPU

Architettura

Hikube permette di collegare GPU NVIDIA direttamente alle macchine virtuali e ai cluster Kubernetes. L'allocazione GPU è gestita dal NVIDIA GPU Operator lato Kubernetes, e dal passthrough PCI lato macchine virtuali (KubeVirt).


Terminologia

TermineDescrizione
GPU OperatorNVIDIA GPU Operator — gestisce automaticamente i driver, il device plugin e il runtime GPU sui nodi Kubernetes.
Device PluginPlugin Kubernetes che espone le GPU come risorse pianificabili (nvidia.com/<model>).
PCI PassthroughTecnica che assegna una GPU fisica direttamente a una VM, offrendo prestazioni native.
CUDAPiattaforma di calcolo parallelo NVIDIA, utilizzata per l'accelerazione GPU (ML, HPC, rendering).
Instance TypeProfilo di risorse CPU/RAM della VM. Dimensionato in funzione del numero di GPU (8-16 vCPU per GPU raccomandato).

Tipi di GPU disponibili

GPUArchitetturaMemoriaCaso d'uso
L40SAda Lovelace48 GB GDDR6Inferenza, sviluppo, prototipazione
A100 (PCIe / SXM4)Ampere80 GB HBM2eAddestramento ML, fine-tuning
RTX PRO 6000 BlackwellBlackwell96 GB GDDR7LLM, calcolo intensivo, addestramento distribuito

Identificativi GPU nei manifest

GPUValore gpus[].name
L40Snvidia.com/AD102GL_L40S
A100 PCIe 80 GBnvidia.com/GA100_A100_PCIE_80GB
A100 SXM4 80 GBnvidia.com/GA100_A100_SXM4_80GB
RTX PRO 6000 Blackwellnvidia.com/GB202GL_RTX_PRO_6000_BLACKWELL_SERVER_EDITION

GPU su macchine virtuali

Le GPU sono collegate alle VM tramite PCI passthrough:

  • La GPU fisica è dedicata alla VM (prestazioni native)
  • Dichiarata in spec.gpus[] del manifest VMInstance
  • Multi-GPU possibile (ripetere le voci in gpus[])
  • I driver NVIDIA devono essere installati nella VM
Rapporto CPU/GPU raccomandato

Prevedete da 8 a 16 vCPU per GPU. Per una singola GPU, un u1.2xlarge (8 vCPU, 32 GB RAM) è un buon punto di partenza.


GPU su Kubernetes

Le GPU sono esposte ai pod tramite il NVIDIA Device Plugin:

  • Il GPU Operator deve essere attivato sul cluster (addons.gpuOperator.enabled: true)
  • I pod richiedono una GPU tramite resources.limits (nvidia.com/gpu: 1)
  • Lo scheduler Kubernetes posiziona il pod su un nodo che dispone della GPU richiesta
  • I nodi GPU sono configurati nei node group con il campo gpus[]

Confronto VM vs Kubernetes

CriterioGPU su VMGPU su Kubernetes
IsolamentoGPU dedicata (passthrough)GPU condivisa tramite device plugin
PrestazioniPrestazioni nativePrestazioni native
FlessibilitàOS completo, driver manualiContainer, scaling automatico
Multi-GPUTramite spec.gpus[]Tramite resources.limits
Caso d'usoWorkstation, ambienti interattiviPipeline ML, inferenza su larga scala

Limiti e quote

ParametroValore
GPU per VMMultipli (secondo disponibilità)
GPU per pod KubernetesMultipli (tramite resources.limits)
Tipi di GPUL40S, A100 (PCIe/SXM4), RTX PRO 6000 Blackwell
Memoria GPU max96 GB (RTX PRO 6000 Blackwell)

Per approfondire