Zum Hauptinhalt springen

GPUs auf Hikube

Hikube bietet Zugang zu NVIDIA-Beschleunigern über GPU Passthrough, was die Ausführung von Workloads ermöglicht, die Hardware-Beschleunigung benötigen. GPUs sind für zwei Arten von Workloads verfügbar: Virtuelle Maschinen und Kubernetes-Pods.


🎯 Nutzungsarten

GPU mit Virtuellen Maschinen

GPUs können direkt an virtuelle Maschinen über GPU Passthrough VFIO-PCI angehängt werden und bieten einen vollständigen und exklusiven Zugang zum Beschleuniger.

Anwendungsfälle:

  • Anwendungen, die vollständige Kontrolle über den GPU erfordern
  • Legacy- oder spezialisierte Workloads
  • Isolierte Entwicklungsumgebungen
  • Grafische Anwendungen (Rendering, CAD)

GPU mit Kubernetes

GPUs können Kubernetes-Workern zugewiesen und dann über Resource Requests/Limits den Pods zugeordnet werden.

Anwendungsfälle:

  • Containerisierte KI/ML-Workloads
  • Automatische Skalierung von GPU-Anwendungen
  • GPU-Ressourcenteilung zwischen Anwendungen
  • Komplexe Orchestrierung paralleler Jobs

🖥️ Verfügbare Hardware

Hikube bietet mehrere NVIDIA-GPUs:

NVIDIA L40S

  • Architektur: Ada Lovelace
  • Speicher: 48 GB GDDR6 mit ECC
  • Ressourcenname: nvidia.com/AD102GL_L40S
  • Typischer Einsatz: Generative KI, Inferenz, Echtzeit-Rendering

NVIDIA A100 80 GB (PCIe / SXM4)

  • Architektur: Ampere
  • Speicher: 80 GB HBM2e mit ECC
  • Ressourcennamen: nvidia.com/GA100_A100_PCIE_80GB, nvidia.com/GA100_A100_SXM4_80GB
  • Typischer Einsatz: ML-Training, Hochleistungsrechnen (die SXM4-Variante unterstützt NVLink für Multi-GPU)

NVIDIA RTX PRO 6000 Blackwell

  • Architektur: Blackwell (Server Edition)
  • Speicher: 96 GB GDDR7 mit ECC
  • Ressourcenname: nvidia.com/GB202GL_RTX_PRO_6000_BLACKWELL_SERVER_EDITION
  • Typischer Einsatz: LLM, Transformers, intensives Rechnen

🏗️ Architektur

GPU-Zuweisung mit VMs

GPU-Zuweisung mit Kubernetes


⚙️ Konfiguration

GPU auf 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 auf 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 Kubernetes-Pod

apiVersion: v1
kind: Pod
spec:
containers:
- name: gpu-app
image: nvidia/cuda:12.0-runtime-ubuntu20.04
resources:
limits:
nvidia.com/gpu: 1

📋 Vergleich der Ansätze

AspektGPU auf VMGPU auf Kubernetes
IsolationVollständig (1 GPU = 1 VM)Geteilt (orchestriert)
LeistungNativ (Passthrough)Nativ (Device Plugin)
VerwaltungManuellAutomatisiert
SkalierungNur vertikalHorizontal + Vertikal
TeilungNeinJa (zwischen Pods)
KomplexitätEinfachKomplex

🚀 Nächste Schritte

Für Virtuelle Maschinen

Für Kubernetes