GPUs in Google Kubernetes Engine (GKE)


Auf dieser Seite werden Optionen zum Anfordern von GPUs in Google Kubernetes Engine (GKE) erläutert. Dazu gehören:

In GKE hängt die Art und Weise, wie Sie GPU-Hardware anfordern, davon ab, ob Sie den Autopilot- oder den Standardmodus verwenden. In Autopilot fordern Sie GPU-Hardware an, indem Sie GPU-Ressourcen in Ihren Arbeitslasten angeben. Im GKE Standardmodus können Sie GPU-Hardware an Knoten in Ihren Clustern anhängen und dann GPU-Ressourcen zu containerisierten Arbeitslasten zuweisen, die auf diesen Knoten ausgeführt werden. Eine detaillierte Anleitung zum Anhängen und Verwenden von GPUs in Ihren Arbeitslasten finden Sie unter GPU-Arbeitslasten auf Autopilot bereitstellen oder GPUs in Standardknotenpools ausführen.

Die in GKE verfügbare GPU-Hardware ist eine Teilmenge der Compute Engine-GPUs für Compute-Arbeitslasten. Die spezifische Hardware, die verfügbar ist, hängt von der Compute Engine-Region oder -Zone Ihres Clusters ab. Informationen zur spezifischen Verfügbarkeit finden Sie unter GPU-Regionen und -Zonen.

GKE bietet einige GPU-spezifische Features zur Verbesserung der effizienten GPU-Ressourcennutzung von Arbeitslasten, die auf Ihren Knoten ausgeführt werden, darunter Zeitfreigabe, GPUs mit mehreren Instanzen und GPUs mit mehreren Instanzen GPUs mit NVIDIA MPS.

GPU-Kontingent planen

Ihr GPU-Kontingent entspricht der maximalen Zahl der GPUs, die in Ihrem Google Cloud-Projekt ausgeführt werden können. Damit Sie GPUs in Ihren GKE-Clustern verwenden können, muss in Ihrem Projekt ein ausreichend hohes GPU-Kontingent vorhanden sein.

Ihr GPU-Kontingent sollte mindestens der Gesamtzahl der GPUs entsprechen, die Sie in Ihrem Cluster ausführen möchten. Wenn Sie Cluster-Autoscaling aktivieren, sollte das angeforderte GPU-Kontingent mindestens der maximalen Anzahl von Knoten in Ihrem Cluster multipliziert mit der Anzahl von GPUs pro Knoten entsprechen.

Wenn Sie beispielsweise drei Knoten mit jeweils zwei GPUs verwenden möchten, ist das für Ihr Projekt erforderliche GPU-Kontingent sechs.

Folgen Sie der Anleitung unter Höheres Kontingentlimit anfordern, um ein höheres GPU-Kontingent anzufordern. Verwenden Sie dabei gpus als Messwert.

GPU-Unterstützung mit Autopilot oder Standard auswählen

GPUs sind in Autopilot- und Standard-Clustern verfügbar. Wir empfehlen die Verwendung von Autopilot-Clustern für eine vollständig verwaltete Kubernetes-Umgebung. In Autopilot verwaltet GKE die Treiberinstallation, Knotenskalierung, Pod-Isolierung und Knotenbereitstellung.

Die folgende Tabelle bietet einen Überblick über die Unterschiede zwischen der Unterstützung von Autopilot- und Standard-GPUs:

Beschreibung Autopilot Standard
GPU-Hardware anfordern Geben Sie GPU-Ressourcen in Ihren Arbeitslasten an. Hängen Sie GPU-Hardware an Knoten in Ihren Clustern an und weisen Sie dann GPU-Ressourcen den containerisierten Arbeitslasten zu, die auf diesen Knoten ausgeführt werden.
GPU-Hardwareverfügbarkeit
  • NVIDIA T4
  • NVIDIA L4
  • NVIDIA A100 40 GB
  • NVIDIA A100 80 GB
  • NVIDIA H100 80 GB
Alle von Compute Engine unterstützten GPU-Typen
GPU auswählen Sie fordern GPU-Menge und -Typ in Ihrer Arbeitslastspezifikation an. Standardmäßig installiert Autopilot den Standardtreiber für diese GKE-Version und verwaltet Ihre Knoten. Informationen zum Auswählen einer bestimmten Treiberversion in Autopilot finden Sie unter NVIDIA-Treiberauswahl für Autopilot-GPU-Pods. Führen Sie die unter GPUs in Standardknotenpools ausführen beschriebenen Schritte aus:
  1. Erstellen Sie einen Knotenpool mit dem spezifischen GPU-Typ und dem entsprechenden Compute Engine-Maschinentyp und wählen Sie einen Treiber zur Installation aus.
  2. Installieren Sie GPU-Treiber manuell auf den Knoten, falls Sie die automatische Installation nicht verwendet haben.
  3. Fordern Sie GPU-Mengen in der Pod-Spezifikation an.
GPU-Auslastung verbessern
Sicherheit GPUs mit GKE Sandbox GPUs mit GKE Sandbox
Preise Autopilot GPU Pod-Preise Compute Engine-GPU-Preise

Informationen zum Auswählen des GKE-Betriebsmodus, der für Ihre Arbeitslasten am besten geeignet ist, finden Sie unter GKE-Betriebsmodus auswählen.

GPU-Stack über GKE oder den NVIDIA GPU-Operator in GKE verwalten

Standardmäßig verwaltet GKE den gesamten Lebenszyklus der GPU-Knoten, einschließlich automatischer GPU-Treiberinstallation, Monitoring von GPU-Arbeitslasten in GKE mit NVIDIA Data Center GPU Manager (DCGM). und GPU-Freigabestrategien.

Wir empfehlen die Verwendung von GKE zur Verwaltung von GPU-Knoten, da GKE den GPU-Knoten-Lebenszyklus vollständig verwaltet. Wählen Sie eine der folgenden Optionen aus, um mit GKE für die GPU-Knotenverwaltung zu beginnen:

Der NVIDIA-GPU-Operator kann als Alternative zur vollständig verwalteten GPU-Unterstützung in GKE sowohl für COS- (Container-Optimized OS) als auch für Ubuntu-Knoten-Images verwendet werden. Wählen Sie diese Option aus, wenn Sie eine einheitliche Umgebung für mehrere Cloud-Dienstanbieter benötigen, den NVIDIA GPU-Betreiber bereits verwenden oder Software verwenden, die vom NVIDIA GPU-Betreiber abhängt. Weitere Informationen finden Sie unter GPU-Stack mit dem NVIDIA GPU Operator verwalten.

Informationen zur Auswahl der besten Option für Ihren Anwendungsfall finden Sie in der folgenden Tabelle, in der die beiden Methoden zur Verwaltung von GPU-Knoten in GKE verglichen werden.

Beschreibung GPU-Knoten mit GKE verwalten NVIDIA GPU-Operator in GKE verwenden
Verwaltung des GPU-Knotenlebenszyklus (Installation, Upgrade) Vollständig von GKE verwaltet Vom Nutzer verwaltet.
Treiberinstallation Automatische und manuelle Installation von GPU-Treibern. Manuelle Installation von GPU-Treibern
Knotenselektoren cloud.google.com/gke-gpu=true nvidia.com/gpu=true
GPU-Freigabestrategien
  • Mehrfachprozess-Dienst: Nicht unterstützt.
Systemdiagnose von GPU-Knoten
  • Lösen Sie die Knotenreparatur in 15 Minuten aus, wenn die Anzahl der zuweisbaren GPUs nicht der Kapazität entspricht und die automatische Reparatur aktiviert ist.
  • Standardmäßig werden alle Fehlercodes überwacht.
  • Lösen Sie die Knotenreparatur in 15 Minuten aus, wenn die Anzahl der zuweisbaren GPUs nicht der Kapazität entspricht und die automatische Reparatur aktiviert ist.
Messwerte und Beobachtbarkeit
  • Wenn Systemmesswerte aktiviert sind, sind in Cloud Monitoring die folgenden GPU-Messwerte verfügbar: Taktzyklus, Speichernutzung und Speicherkapazität.
  • Selbstverwaltetes DCGM, das vom GPU-Operator bereitgestellt wird.
  • Auch wenn die GKE-GPU-Systemmesswerte aktiviert sind, werden keine GPU-bezogenen Systemmesswerte erfasst, z. B. Arbeitszyklus, Arbeitsspeichernutzung und Arbeitsspeicherkapazität.

Ressourcennutzung mit GPU-Features in GKE optimieren

Standardmäßig unterstützt Kubernetes die Zuweisung von GPUs als ganze Einheiten nur für Container. GKE bietet jedoch zusätzliche Features, mit denen Sie die Ressourcennutzung Ihrer GPU-Arbeitslasten optimieren können.

Die folgenden Features sind in GKE verfügbar, um die Menge der nicht ausgelasteten GPU-Ressourcen zu reduzieren:

GPU-Features
GPUs mit mehreren Instanzen

Verfügbar auf: Autopilot und Standard

Teilen Sie eine einzelne GPU in bis zu sieben hardwaregetrennte Instanzen auf, die sich Containern auf einem Knoten als einzelne GPUs zuweisen lassen. Jeder zugewiesene Container erhält die für diese Instanz verfügbaren Ressourcen.

GPUs mit Zeitfreigabe

Verfügbar auf: Autopilot und Standard

Eine einzelne GPU als mehrere Einheiten für mehrere Container auf einem Knoten darstellen. Der GPU-Treiberkontext wechselt und weist jedem zugewiesenen Container nach Bedarf die vollständigen GPU-Ressourcen zu.

NVIDIA MPS

Verfügbar auf: Standard

Nutzen Sie eine einzelne physische NVIDIA-GPU für mehrere Container. NVIDIA MPS ist eine alternative, binär kompatible Implementierung der CUDA API, die dafür entwickelt wurde, kooperative Multiprozess-CUDA-Anwendungen transparent für die gleichzeitige Ausführung auf einem einzelnen GPU-Gerät zu ermöglichen.

Auf NVIDIA CUDA-X-Bibliotheken für CUDA-Anwendungen zugreifen

CUDA ist die NVIDIA-Plattform für paralleles Computing und das Programmiermodell für GPUs. Zur Verwendung von CUDA-Anwendungen muss das verwendete Image die Bibliotheken haben. Wenn Sie die NVIDIA CUDA-X-Bibliotheken hinzufügen möchten, können Sie Ihr eigenes Image erstellen und verwenden. Fügen Sie dazu die folgenden Werte in die Umgebungsvariable LD_LIBRARY_PATH in Ihre Containerspezifikation ein:

  • /usr/local/cuda-CUDA_VERSION/lib64: den Speicherort der NVIDIA CUDA-X-Bibliotheken auf dem Knoten.

    Ersetzen Sie CUDA_VERSION durch die von Ihnen verwendete CUDA-X-Image-Version. Einige Versionen enthalten auch Dienstprogramme zur Fehlerbehebung in /usr/local/nvidia/bin. Weitere Informationen finden Sie im NVIDIA CUDA-Image auf DockerHub.

    Informationen zum Prüfen der für Ihre CUDA-Version erforderlichen Mindest-GPU-Treiberversion finden Sie unter CUDA-Toolkit und kompatible Treiberversionen.

  • /usr/local/nvidia/lib64: der Speicherort der NVIDIA-Gerätetreiber.
Prüfen Sie, ob die auf den Knoten ausgeführte GKE-Patchversion eine GPU-Treiberversion enthält, die mit der ausgewählten CUDA-Version kompatibel ist. Eine Liste der GPU-Treiberversionen, die mit der GKE-Version verknüpft sind, finden Sie auf der entsprechenden Seite von Container-Optimized OS, die in der Tabelle der aktuellen GKE-Versionen verknüpft ist.

In Autopilot-Clustern verwaltet GKE die Auswahl und Installation der Treiberversion.

Leistung von GPU-Knoten-Arbeitslasten überwachen

Wenn für Ihren GKE-Cluster Systemmesswerte aktiviert sind, stehen in Cloud Monitoring folgende Messwerte zur Überwachung der GPU-Arbeitslastleistung zur Verfügung:

  • Arbeitszyklus (container/accelerator/duty_cycle): Prozentsatz der Zeit im vergangenen Beispielzeitraum (10 Sekunden), während dessen der Beschleuniger aktiv verarbeitet wurde. Liegt zwischen 1 und 100.
  • Arbeitsspeichernutzung (container/accelerator/memory_used): Menge des dem Beschleuniger zugeteilten Arbeitsspeichers in Byte.
  • Speicherkapazität (container/accelerator/memory_total): Gesamter Arbeitsspeicher des Beschleunigers in Byte.

Sie können vordefinierte Dashboards verwenden, um Ihre Cluster mit GPU-Knoten zu überwachen. Weitere Informationen finden Sie unter Beobachtbarkeitsmesswerte aufrufen. Allgemeine Informationen zum Monitoring Ihrer Cluster und der zugehörigen Ressourcen finden Sie unter Beobachtbarkeit für GKE.

Nutzungsmesswerte für Arbeitslasten ansehen

Sie können Ihre GPU-Nutzungsmesswerte für Arbeitslasten im Dashboard Arbeitslasten der Google Cloud Console aufrufen.

Gehen Sie zum Abrufen der GPU-Nutzung Ihrer Arbeitslast so vor:

  1. Rufen Sie in der Google Cloud Console die Seite Arbeitslasten auf.

    Zu Arbeitslasten
  2. Wählen Sie eine Arbeitslast aus.

Im Dashboard „Arbeitslasten” werden die Arbeitsspeichernutzung und -kapazität der GPUs sowie der GPU-Arbeitszyklus in Form von Diagrammen angezeigt.

NVIDIA Data Center GPU Manager-Messwerte (DCGM) ansehen

Sie können NVIDIA DCGM-Messwerte mit Google Cloud Managed Service for Prometheus erfassen und visualisieren. Bei Autopilot-Clustern werden die Treiber von GKE installiert. Für Standardcluster müssen Sie die NVIDIA-Treiber installieren.

Eine Anleitung zum Bereitstellen des von GKE verwalteten DCGM-Pakets finden Sie unter NVIDIA Data Center GPU Manager-Messwerte (DCGM) erfassen und ansehen.

Störungen aufgrund von Knotenwartungen verarbeiten

Die GKE-Knoten, auf denen die GPUs gehostet werden, unterliegen Wartungsereignissen oder anderen Störungen, die zum Herunterfahren des Knotens führen können. In GKE-Clustern auf deren Steuerungsebene, die Version 1.29.1-gke.1425000 oder höher ausgeführt wird, können Sie die Unterbrechung von Arbeitslasten reduzieren. Konfigurieren Sie dazu GKE so, dass Ihre Arbeitslasten ordnungsgemäß beendet werden.

Informationen zum Verstehen, Konfigurieren und Überwachen von Unterbrechungsereignissen auf GKE-Knoten mit KI/ML-Arbeitslasten finden Sie unter GKE-Knotenunterbrechungen für GPUs und TPUs verwalten.

Nächste Schritte