GPU su Hikube
Hikube propone l'accesso agli acceleratori NVIDIA tramite GPU Passthrough, permettendo l'esecuzione di workload che necessitano di accelerazione hardware. Le GPU sono disponibili per due tipi di workload: macchine virtuali e pod Kubernetes.
๐ฏ Tipi di Utilizzoโ
GPU con Macchine Virtualiโ
Le GPU possono essere collegate direttamente alle macchine virtuali tramite GPU passthrough VFIO-PCI, offrendo un accesso completo ed esclusivo all'acceleratore.
Casi d'uso:
- Applicazioni che necessitano un controllo completo della GPU
- Workload legacy o specializzati
- Ambienti di sviluppo isolati
- Applicazioni grafiche (rendering, CAD)
GPU con Kubernetesโ
Le GPU possono essere allocate ai worker Kubernetes e poi assegnate ai pod tramite le resource requests/limits.
Casi d'uso:
- Workload containerizzati di IA/ML
- Scaling automatico delle applicazioni GPU
- Condivisione delle risorse GPU tra applicazioni
- Orchestrazione complessa di job paralleli
๐ฅ๏ธ Hardware Disponibileโ
Hikube propone diverse GPU NVIDIA:
NVIDIA L40Sโ
- Architettura: Ada Lovelace
- Memoria: 48 GB GDDR6 con ECC
- Nome di risorsa:
nvidia.com/AD102GL_L40S - Uso tipico: IA generativa, inferenza, rendering in tempo reale
NVIDIA A100 80 GB (PCIe / SXM4)โ
- Architettura: Ampere
- Memoria: 80 GB HBM2e con ECC
- Nomi di risorsa:
nvidia.com/GA100_A100_PCIE_80GB,nvidia.com/GA100_A100_SXM4_80GB - Uso tipico: Addestramento ML, calcolo ad alte prestazioni (la variante SXM4 supporta NVLink per il multi-GPU)
NVIDIA RTX PRO 6000 Blackwellโ
- Architettura: Blackwell (Server Edition)
- Memoria: 96 GB GDDR7 con ECC
- Nome di risorsa:
nvidia.com/GB202GL_RTX_PRO_6000_BLACKWELL_SERVER_EDITION - Uso tipico: LLM, transformer, calcolo intensivo
๐๏ธ Architetturaโ
Allocazione GPU con VMโ
Allocazione GPU con Kubernetesโ
โ๏ธ Configurazioneโ
GPU su VMโ
apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
spec:
runStrategy: Always
instanceType: "u1.xlarge"
gpus:
- name: "nvidia.com/AD102GL_L40S"
disks:
- name: vm-gpu-disk
GPU su Kubernetes Workerโ
apiVersion: apps.cozystack.io/v1alpha1
kind: Kubernetes
spec:
nodeGroups:
gpu-workers:
instanceType: "u1.xlarge"
gpus:
- name: "nvidia.com/AD102GL_L40S"
addons:
gpuOperator:
enabled: true
GPU in Pod Kubernetesโ
apiVersion: v1
kind: Pod
spec:
containers:
- name: gpu-app
image: nvidia/cuda:12.0-runtime-ubuntu20.04
resources:
limits:
nvidia.com/gpu: 1
๐ Confronto degli Approcciโ
| Aspetto | GPU su VM | GPU su Kubernetes |
|---|---|---|
| Isolamento | Completo (1 GPU = 1 VM) | Condiviso (orchestrato) |
| Prestazioni | Native (passthrough) | Native (device plugin) |
| Gestione | Manuale | Automatizzata |
| Scaling | Solo verticale | Orizzontale + Verticale |
| Condivisione | No | Sรฌ (tra pod) |
| Complessitร | Semplice | Complessa |
๐ Prossimi Passiโ
Per le Macchine Virtualiโ
- Creare una VM GPU โ Guida pratica
- API Reference โ Configurazione completa
Per Kubernetesโ
- Cluster GPU โ Worker con GPU
- Configurazione avanzata โ NodeGroup GPU