Dynamisches Slicing in GKE

In diesem Dokument wird dynamisches Slicing in Google Kubernetes Engine (GKE) beschrieben. Mit dynamischem Slicing können Sie bereitgestellte TPU Unterblöcke in verschiedenen Topologien konfigurieren. Diese Funktion macht es weniger erforderlich, Knotenpools neu zu erstellen, verbessert die Fehlertoleranz durch automatische Wiederherstellung bei einem Fehler und optimiert die Ressourcennutzung.

Dynamisches Slicing ist für Machine-Learning-Entwickler und Plattformtechniker 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 bietet Flexibilität bei der Verwaltung der Cloud TPU-Kapazität, da Sie die TPU-Bereitstellung entkoppeln können. Dynamisches Slicing umfasst den folgenden Prozess:

  1. Ressourcen als kleinere Einheiten bereitstellen: Sie stellen Ressourcen als Einheiten bereit , die als Unterblöcke bezeichnet werden. Ein Unterblock ist die grundlegende logische Baueinheit der Ironwood-Kapazität (TPU7x). Bei Ironwood (TPU7x) stellt ein Unterblock eine 16-Knoten-Gruppe von TPU-VMs mit einer 4x4x4-Topologie miteinander verbundener TPU-Chips dar. Im Kontext des TPU-Modus „Alle Kapazitäten“ und des dynamischen Slicings wird ein Knotenpool direkt einem Unterblock zugeordnet.
  2. Unterblöcke zusammenfügen: Beim dynamischen Slicing werden diese Unterblöcke zu größeren Slices zusammengefügt.

Vorteile des dynamischen Slicings

Mit dynamischem Slicing können Sie Folgendes erreichen:

  • Bereitstellungszeit verkürzen: Die individuelle Bereitstellung von Unterblöcken führt zu einer schnelleren Gesamtbereitstellung, da die Auswirkungen eines einzelnen Fehlers minimiert werden.
  • Wiederherstellungszeit verkürzen: Wenn ein TPU-Chip ausfällt, ist der kleinste Fehlerbereich ein Unterblock. Beim dynamischen Slicing werden fehlerhafte Unterblöcke isoliert, sodass Arbeitslasten schneller auf fehlerfreien Unterblöcken neu geplant werden können, als wenn ein großer Slice neu bereitgestellt werden muss.
  • Kapazität neu gestalten: Wenn Sie unterschiedliche Arbeitslastanforderungen haben, müssen Sie Knotenpools nicht löschen und neu erstellen, um die Topologie zu ändern. Stattdessen können Sie die bereitgestellten Knotenpools dynamisch neu konfigurieren, um sie an die angegebenen Formen anzupassen.

Wichtige Elemente des dynamischen Slicings

Mit dynamischem Slicing werden die folgenden wichtigen Konzepte eingeführt:

  • Inkrementelle Bereitstellung von Knotenpools: Beim dynamischen Slicing wird die inkrementelle Bereitstellung verwendet, ein fehlertolerantes Bereitstellungsmodell für Knotenpools. Bei diesem Modell wird die gesamte TPU-Kapazität in Knotenpools mit 16 Knoten umfassenden Gruppen von TPU-VMs umgewandelt.
  • Slice-Controller: Ein Kubernetes-Controller für benutzerdefinierte Ressourcen, der in der GKE-Steuerungsebene ausgeführt wird und das dynamische Slicing verwaltet. Der Slice Controller verwaltet den Lebenszyklus einer benutzerdefinierten Slice-Ressource, die einen dynamischen Slice darstellt. Der Slice-Controller kümmert sich um das Erstellen, kontinuierliche Überwachen und Löschen des Slice. Wenn Sie einen Scheduler verwenden, steuert dieser die Erstellung und Löschung der benutzerdefinierten Slice-Ressource.
  • Benutzerdefinierte Slice-Ressource: Fügt Unterblöcke dynamisch basierend auf der angeforderten TPU-Topologie zusammen. Dieser Prozess basiert auf der dynamischen Neukonfiguration des OCS-Netzwerks, um die TPU-Knotenpools zu verbinden, was zu einer optimierten Leistung beiträgt. Sie können den Fortschritt oder den Status der dynamischen Slice-Erstellung prüfen, indem Sie die Statusfelder der benutzerdefinierten Slice-Ressource untersuchen.

Scheduler für dynamisches Slicing verwenden

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

Nächste Schritte