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

FAQ — GPU

Quali modelli di GPU sono disponibili?

Hikube propone tre famiglie di GPU NVIDIA:

GPUArchitetturaMemoriaCaso d'uso
L40SAda Lovelace48 GB GDDR6Inferenza, rendering grafico
A100Ampere80 GB HBM2eAddestramento ML, calcolo scientifico
H100Hopper80 GB HBM3LLM, calcolo exascale

Gli identificativi da utilizzare nei manifest:

gpus:
- name: "nvidia.com/AD102GL_L40S" # L40S
- name: "nvidia.com/GA100_A100_PCIE_80GB" # A100
- name: "nvidia.com/H100_94GB" # H100

Qual è la differenza tra GPU in VM e GPU in Kubernetes?

AspettoGPU in VMGPU in Kubernetes
Modalità di accessoPCI passthrough esclusivoDevice plugin condiviso
IsolamentoGPU dedicata alla VMScheduling orchestrato da K8s
Installazione driverManuale (cloud-init)Automatica (GPU Operator)
Caso d'usoWorkstation dedicata, sviluppo CUDAWorkload containerizzati, batch

In VM, la GPU è direttamente collegata tramite PCI passthrough: la VM ha un accesso esclusivo all'hardware. In Kubernetes, il GPU Operator gestisce i driver e lo scheduling permette di condividere le risorse GPU tra più pod.


Quale rapporto CPU/GPU è raccomandato?

Per un utilizzo ottimale, prevedete da 8 a 16 vCPU per GPU. Le istanze della gamma Universal (u1) con un rapporto 1:4 sono raccomandate:

ConfigurazioneIstanzavCPURAM
1 GPUu1.2xlarge832 GB
1 GPU (intensivo)u1.4xlarge1664 GB
Multi-GPUu1.8xlarge32128 GB

Come sono installati i driver NVIDIA?

L'installazione dipende dalla modalità di utilizzo:

In VM: installate manualmente tramite cloud-init all'avvio:

vm-gpu.yaml
spec:
cloudInit: |
#cloud-config
runcmd:
- apt-get update
- apt-get install -y linux-headers-$(uname -r)
- apt-get install -y nvidia-driver-550 nvidia-utils-550

In Kubernetes: attivate l'addon GPU Operator che installa automaticamente i driver sui nodi GPU:

cluster-gpu.yaml
spec:
addons:
gpuOperator:
enabled: true

Come verificare che la GPU sia rilevata?

In VM:

nvidia-smi

Questo comando visualizza le GPU rilevate, il loro utilizzo di memoria e i processi attivi.

In Kubernetes:

kubectl get nodes -o json | jq '.items[].status.allocatable["nvidia.com/gpu"]'

Potete anche verificare dall'interno di un pod:

kubectl exec -it <pod-name> -- nvidia-smi

Come richiedere una GPU in un pod Kubernetes?

Specificate la risorsa nvidia.com/gpu nei limiti del container:

pod-gpu.yaml
apiVersion: v1
kind: Pod
metadata:
name: gpu-workload
spec:
containers:
- name: cuda-app
image: nvidia/cuda:12.0-base
resources:
limits:
nvidia.com/gpu: 1
nota

Il numero di GPU richiesto in limits deve corrispondere alle GPU fisiche disponibili sui nodi. Un pod non può richiedere una frazione di GPU.