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 tre tipi di GPU NVIDIA:
NVIDIA L40Sβ
- Architettura: Ada Lovelace
- Memoria: 48 GB GDDR6 con ECC
- Prestazioni: 362 TOPS (INT8), 91.6 TFLOPs (FP32)
- Uso tipico: IA generativa, inferenza, rendering tempo reale
NVIDIA A100β
- Architettura: Ampere
- Memoria: 80 GB HBM2e con ECC
- Prestazioni: 312 TOPS (INT8), 624 TFLOPs (Tensor)
- Uso tipico: Addestramento ML, calcolo ad alte prestazioni
NVIDIA H100β
- Architettura: Hopper
- Memoria: 80 GB HBM3 con ECC
- Prestazioni: 1979 TOPS (INT8), 989 TFLOPs (Tensor)
- Uso tipico: LLM, transformer, calcolo exascale
ποΈ Architetturaβ
Allocazione GPU con VMβ
Allocazione GPU con Kubernetesβ
βοΈ Configurazioneβ
GPU su VMβ
apiVersion: apps.cozystack.io/v1alpha1
kind: VirtualMachine
spec:
instanceType: "u1.xlarge"
gpus:
- name: "nvidia.com/AD102GL_L40S"
GPU su Kubernetes Workerβ
apiVersion: apps.cozystack.io/v1alpha1
kind: Kubernetes
spec:
nodeGroups:
gpu-workers:
instanceType: "u1.xlarge"
gpus:
- name: "nvidia.com/AD102GL_L40S"
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 | Si (tra pod) |
| ComplessitΓ | Semplice | Complessa |
π Prossimi Passiβ
Per le Macchine Virtualiβ
- Creare una VM GPU β Guida pratica
- Riferimento API β Configurazione completa
Per Kubernetesβ
- Cluster GPU β Worker con GPU
- Configurazione avanzata β NodeGroup GPU