Vai al contenuto principale

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โ€‹

AspettoGPU su VMGPU su Kubernetes
IsolamentoCompleto (1 GPU = 1 VM)Condiviso (orchestrato)
PrestazioniNative (passthrough)Native (device plugin)
GestioneManualeAutomatizzata
ScalingSolo verticaleOrizzontale + Verticale
CondivisioneNoSรฌ (tra pod)
Complessitร SempliceComplessa

๐Ÿš€ Prossimi Passiโ€‹

Per le Macchine Virtualiโ€‹

Per Kubernetesโ€‹