Auf dieser Seite werden Optionen zum Anfordern von GPUs in Google Kubernetes Engine (GKE) erläutert. Dazu gehören:
- GPU-Ressourcen und Effizienzfeatures für GKE-Arbeitslasten auswählen
- GPU-Kontingent auswählen: Die maximale Anzahl von GPUs, die in Ihrem Projekt ausgeführt werden können
- Zwischen Autopilot- und Standardmodi entscheiden
- GPU-Stack über GKE oder NVIDIA GPU Operator in GKE verwalten
- Funktionen auswählen, um die Anzahl der nicht optimal genutzten GPU-Ressourcen zu reduzieren
- Auf NVIDIA CUDA-X-Bibliotheken für CUDA-Anwendungen zugreifen
- GPU-Knotenmesswerte überwachen
- Störungen aufgrund von Knotenwartungen verarbeiten
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 |
|
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:
|
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 |
|
|
Systemdiagnose von GPU-Knoten |
|
|
Messwerte und Beobachtbarkeit |
|
|
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.
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:
Rufen Sie in der Google Cloud Console die Seite Arbeitslasten auf.
Zu Arbeitslasten- 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.