Dynamisches Slicing in GKE

In diesem Dokument wird dynamisches Slicing in Google Kubernetes Engine (GKE) für Cloud TPU beschrieben. Dynamisches Slicing verbessert die TPU-Effizienz und ‑Flexibilität, indem die TPU-Bereitstellung von den TPU-Slice-Anforderungen der Arbeitslast entkoppelt wird. Dynamisches Slicing trägt dazu bei, die TPU-Ressourcennutzung zu verbessern, indem die Startzeit der Arbeitslast um bis zu fünf Mal und die Wiederherstellungszeit um bis zu 4,5 Mal verkürzt wird.

Dynamisches Slicing ist für Machine Learning-Entwickler und Plattformentwickler gedacht, die die TPU-Nutzung optimieren, die Bereitstellungszeit verkürzen und die Fehlertoleranz für umfangreiche Trainings- und Inferenzarbeitslasten verbessern möchten.

Bevor Sie dieses Dokument lesen, sollten Sie mit den folgenden Themen vertraut sein:

Was ist dynamisches Slicing?

Dynamisches Slicing ist eine GKE-TPU-Optimierungsfunktion, die die physische und statische TPU-Hardwarebereitstellung von der TPU-Slice-Zuweisung zur Laufzeit entkoppelt, wenn Arbeitslasten geplant werden.

Wenn Sie statische TPU-Topologien verwenden, sind GKE-Knotenpools an die spezifische Topologie gebunden, die Sie bei der Erstellung konfiguriert haben. Aufgrund dieser Einschränkung ist der gesamte Knotenpool betroffen, wenn ein Knoten in einem statischen Pool ausfällt. Außerdem muss die Topologie Ihrer Arbeitslast genau mit der TPU-Topologie des Knotenpools übereinstimmen, damit sie geplant werden kann. Dies kann eine häufige Neubereitstellung der TPU-Infrastruktur für verschiedene Arbeitslasten erfordern.

Mit dynamischem Slicing kann GKE TPU-Slices zur Laufzeit konfigurieren, wenn Arbeitslasten geplant werden. Anstatt Knotenpools mit der genauen TPU-Topologie zu erstellen, die für jede neue Arbeitslast erforderlich ist, stellen Sie die gesamte TPU-Kapazität in granularen Knotenpools mit fester Größe bereit. Für Ironwood (TPU7x), jeder Knotenpool besteht aus einer 4x4x4-Topologie, auch bekannt als Subblock. Ein Subblock stellt eine 16-Knoten-Gruppe von TPU-VMs ohne aktives Inter-Chip Interconnect-Topologie-Mesh (ICI) dar. Zur Laufzeit, wenn Arbeitslasten geplant werden, konfiguriert das dynamische Slicing von GKE die TPU-Netzwerkverbindung neu, um entweder mehrere Knotenpools zu dem erforderlichen großen TPU-Slice zusammenzufügen oder Knotenpools zu kleineren TPU-Slices aufzuteilen. Durch diese Neukonfiguration wird die von einer Arbeitslast angeforderte mehrdimensionale Topologie in Sekundenschnelle erstellt.

Vorteile des dynamischen Slicings

Die Implementierung einer dynamischen TPU-Architektur in GKE bietet folgende Vorteile:

  • Schnellere Wiederherstellung von Arbeitslasten: Bei einem physischen Hardwarefehler isoliert GKE das Problem auf eine einzelne Partition. Der GKE-Slice-Controller formt den aktiven Slice automatisch neu und konfiguriert das Netzwerk neu, um die fehlerhafte Partition durch eine fehlerfreie Ersatzpartition zu ersetzen. Dieser Prozess verbessert die Resilienz oder die mittlere Wiederherstellungszeit (Mean Time to Recovery, MTTR) um bis zu 4,5 Mal im Vergleich zur Neuerstellung eines gesamten Knotenpools.
  • Schnellerer Jobstart: Arbeitslast-Slices können dynamisch erstellt werden, was im Vergleich zur Erstellung statischer Knotenpools zu einer um bis zu fünf Mal kürzeren Jobstartlatenz führt.
  • Fehlerisolation: Hardwarefehler werden auf die spezifische Partition isoliert, in der der Fehler auftritt. Diese Isolation trägt dazu bei, andere gleichzeitige Jobs im Cluster vor kaskadierenden Fehlern zu schützen.
  • Optimierte Ressourcennutzung: Dynamisches Slicing trägt dazu bei, nicht genutzte oder unterausgelastete Kapazitäten zu vermeiden. Da Slices so konfiguriert sind, dass sie den Anforderungen der Arbeitslast entsprechen, trägt dynamisches Slicing dazu bei, die Flottenauslastung zu maximieren und die Hardware im Leerlauf zu minimieren.
  • Deklarative Orchestrierung: Dynamisches Slicing verwendet Kubernetes-native benutzerdefinierte Ressourcen und Anmerkungen wie JobSet und Kueue. Mit diesem Ansatz werden die Orchestrierung von Netzwerken und Hardware auf niedriger Ebene automatisch verwaltet.

Konfigurationen für dynamisches Slicing

Dynamisches Slicing bietet die folgenden Konfigurationen:

  • Dynamisches Superslicing: Kombiniert mehrere physisch getrennte, vorab bereitgestellte TPU-Knotenpools zu einem einzelnen virtuellen Slice zum Zeitpunkt der Arbeitslast planung. Sie können beispielsweise zwei 4x4x4-Knotenpools kombinieren, um eine 4x4x8-Topologie zu erstellen. Mit dieser Funktion können Sie Slices erstellen, die einer 4x4x4-Topologie entsprechen oder größer sind. Für diese Konfiguration ist Version 1.35.2-gke.1842000 oder höher erforderlich. Mit dynamischem Superslicing können Sie große Foundation Models trainieren, die die Kapazität eines einzelnen physischen Hardwareblocks übersteigen.

    Der Slice-Controller orchestriert physische Neukonfigurationen innerhalb des Optical Circuit Switch-Netzwerks (OCS). Durch die dynamische Neukonfiguration des OCS erweitert GKE das Inter-Chip Interconnect-Netzwerk (ICI) über unabhängige Hardware-Racks hinweg. Aus Sicht der Arbeitslasten funktionieren die kombinierten Subblocks als einzelnes toroidales Mesh. In einem toroidalen Mesh sind die Verbindungen um das Mesh herum angeordnet. Die Chips am rechten Rand sind direkt mit den Chips am linken Rand verbunden und die Oberseite mit der Unterseite. Wenn Sie sich diese Anordnung vorstellen, ergibt sie die Form eines Torus (eines Rings).

  • Dynamisches Unterslicing: Partitioniert einen einzelnen, vorab bereitgestellten TPU-Knoten pool auf Arbeitslastebene in mehrere kleinere, unabhängige Einheiten. Mit dynamischem Unterslicing können Sie kleinere Topologien innerhalb eines einzelnen Subblocks erstellen, insbesondere 2x2x1, 2x2x2, 2x2x4 und 2x4x4. Sie können beispielsweise einen 4x4x4-Subblock in einen 2x2x4-Subslice und zwei 2x2x2-Subslices partitionieren. Für diese Konfiguration ist Version 1.36.0-gke.3712000 oder höher im Rapid Channel erforderlich.

    Mit dynamischem Unterslicing können Sie mehrere Arbeitslasten in einem einzelnen physischen Knotenpool ausführen. Sie können beispielsweise gleichzeitige Feinabstimmung, Experimente und Online-Inferenz ausführen. Unterslicing bietet elektrische und Netzwerkisolation zwischen diesen Subslices, was dazu beiträgt, Fehler oder Leistungseinbußen zwischen Arbeitslasten zu isolieren.

Wichtige Merkmale von Konfigurationen für dynamisches Slicing

Konfigurationen für dynamisches Slicing haben die folgenden Merkmale:

  • Inkrementelle Bereitstellung von Knotenpools: Dynamisches Slicing verwendet die inkrementelle Bereitstellung, ein fehlertolerantes Bereitstellungsmodell für Knotenpools. Mit diesem Modell wird die gesamte TPU-Kapazität in Knotenpools umgewandelt, die aus 16-Knoten-Gruppen von Ironwood-VMs (TPU7x) bestehen. So können Sie auch teilweise fehlerhafte Cubes bereitstellen und nutzen.
  • Slice-Controller: Ein Kubernetes-Controller für benutzerdefinierte Ressourcen, der in der GKE-Steuerungsebene ausgeführt wird und dynamisches Slicing verwaltet. Der Slice Controller verwaltet den Lebenszyklus einer benutzerdefinierten Slice Ressource, die einen dynamischen Slice darstellt (Erstellung, kontinuierliche Überwachung und Löschung). Außerdem werden Daten zur Infrastrukturintegrität (Host, ICI, OCS) an Knotenlabels weitergegeben, um fehlerfreie Kandidatenknoten zu identifizieren.
  • Benutzerdefinierte Slice-Ressource: Stellt den logischen Slice dar und initiiert die dynamische Konfiguration von Verbindungen zwischen Knoten (ICI und OCS), um die angeforderte TPU-Topologie zu erstellen. Bei diesem Prozess werden entweder mehrere Subblocks zusammengefügt (Superslicing) oder eine kleinere Topologie innerhalb eines einzelnen Subblocks isoliert (Unterslicing). Sie können den Fortschritt oder die Integrität der dynamischen Slice-Erstellung prüfen, indem Sie die Statusfelder der benutzerdefinierten Slice-Ressource untersuchen.

Voraussetzungen

Um dynamisches Slicing in GKE zu verwenden, müssen Sie die folgenden Voraussetzungen erfüllen:

  • Verwenden Sie einen Standardcluster im Rapid Channel in einer der folgenden Versionen:
    • Für die Konfiguration des dynamischen Superslicings (Topologien, die gleich oder größer als 4x4x4 sind) verwenden Sie Version 1.35.2-gke.1842000 oder höher.
    • Für die Konfiguration des dynamischen Unterslicings (Topologien, die kleiner als 4x4x4 sind) verwenden Sie Version 1.36.0-gke.3712000 oder höher.
  • Verwenden Sie die Ironwood-Version (TPU7x).
  • Verwenden Sie das Container-Optimized OS-Image für Ihre Knoten.
  • Wenn Sie die inkrementelle Bereitstellung verwenden möchten, verwenden Sie Reservierungen im Modus „All Capacity“. Der Modus „All Capacity“ ist eine Funktion, die von TPU Cluster Director aktiviert wird.
  • Für dynamisches Unterslicing müssen für Ihre Knoten ausstehende Wartungsereignisse vorhanden sein. Überwachen Sie Ihre Instanzen auf ausstehende Wartungsereignisse. Wenn für einen Ihrer Knoten ein ausstehendes Wartungsereignis mit einer Endzeit zwischen dem 18. September 2026 und dem 30. September 2026 vorhanden ist, müssen Sie das Hostwartungsereignis auf diesen Knoten manuell auslösen , bevor Sie Unterslicing verwenden können.

Scheduler für dynamisches Slicing verwenden

Wenn Sie dynamisches Slicing verwenden möchten, haben Sie folgende Möglichkeiten:

Nächste Schritte