Aller au contenu principal

Concepts — GPU

Architecture

Hikube permet d'attacher des GPU NVIDIA directement aux machines virtuelles et aux clusters Kubernetes. L'allocation GPU est gérée par le NVIDIA GPU Operator côté Kubernetes, et par le passthrough PCI côté machines virtuelles (KubeVirt).


Terminologie

TermeDescription
GPU OperatorNVIDIA GPU Operator — gère automatiquement les pilotes, le device plugin et le runtime GPU sur les nœuds Kubernetes.
Device PluginPlugin Kubernetes qui expose les GPU comme ressources planifiables (nvidia.com/<model>).
PCI PassthroughTechnique qui attribue un GPU physique directement à une VM, offrant des performances natives.
CUDAPlateforme de calcul parallèle NVIDIA, utilisée pour l'accélération GPU (ML, HPC, rendu).
Instance TypeProfil de ressources CPU/RAM de la VM. Dimensionné en fonction du nombre de GPU (8-16 vCPU par GPU recommandé).

Types de GPU disponibles

GPUArchitectureMémoireCas d'usage
L40SAda Lovelace48 GB GDDR6Inférence, développement, prototypage
A100 (PCIe / SXM4)Ampere80 GB HBM2eEntraînement ML, fine-tuning
RTX PRO 6000 BlackwellBlackwell96 GB GDDR7LLM, calcul intensif, entraînement distribué

Identifiants GPU dans les manifestes

GPUValeur gpus[].name
L40Snvidia.com/AD102GL_L40S
A100 PCIe 80 Gonvidia.com/GA100_A100_PCIE_80GB
A100 SXM4 80 Gonvidia.com/GA100_A100_SXM4_80GB
RTX PRO 6000 Blackwellnvidia.com/GB202GL_RTX_PRO_6000_BLACKWELL_SERVER_EDITION

GPU sur machines virtuelles

Les GPU sont attachés aux VM via PCI passthrough :

  • Le GPU physique est dédié à la VM (performances natives)
  • Déclaré dans spec.gpus[] du manifeste VMInstance
  • Multi-GPU possible (répéter les entrées dans gpus[])
  • Les pilotes NVIDIA doivent être installés dans la VM
Ratio CPU/GPU recommandé

Prévoyez 8 à 16 vCPU par GPU. Pour un seul GPU, un u1.2xlarge (8 vCPU, 32 GB RAM) est un bon point de départ.


GPU sur Kubernetes

Les GPU sont exposés aux pods via le NVIDIA Device Plugin :

  • Le GPU Operator doit être activé sur le cluster (addons.gpuOperator.enabled: true)
  • Les pods demandent un GPU via resources.limits (nvidia.com/gpu: 1)
  • Le scheduler Kubernetes place le pod sur un nœud disposant du GPU demandé
  • Les nœuds GPU sont configurés dans les node groups avec le champ gpus[]

Comparaison VM vs Kubernetes

CritèreGPU sur VMGPU sur Kubernetes
IsolationGPU dédié (passthrough)GPU partagé via device plugin
PerformancePerformances nativesPerformances natives
FlexibilitéOS complet, pilotes manuelsConteneurs, scaling automatique
Multi-GPUVia spec.gpus[]Via resources.limits
Cas d'usageWorkstations, environnements interactifsPipelines ML, inférence à grande échelle

Limites et quotas

ParamètreValeur
GPU par VMMultiples (selon disponibilité)
GPU par pod KubernetesMultiples (via resources.limits)
Types de GPUL40S, A100 (PCIe/SXM4), RTX PRO 6000 Blackwell
Mémoire GPU max96 GB (RTX PRO 6000 Blackwell)

Pour aller plus loin