Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

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

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

🚀 Prossimi Passi

Per le Macchine Virtuali

Per Kubernetes