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:
- TPUs in GKE
- TPU Cluster Director Dynamisches Slicing ist eine TPU-Funktion, die von TPU Cluster Director aktiviert wird.
- Reservierungen im Modus „Alle Kapazitäten“. Funktionen für dynamisches Slicing sind nur auf TPUs verfügbar, die den Modus „Alle Kapazitäten“ verwenden.
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:
- 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. - 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:
- Verwenden Sie Ihren eigenen Scheduler, um benutzerdefinierte Slice-Ressourcen zu verwalten. Diese Option ist nützlich, wenn Sie komplexe Planungsanforderungen haben oder dynamisches Slicing in Ihre vorhandene Planungsinfrastruktur einbinden möchten. Informationen zu den ersten Schritten finden Sie unter Dynamisches Slicing mit einem benutzerdefinierten Scheduler verwenden.
- Verwenden Sie einen Scheduler, um automatisch eine benutzerdefinierte Slice-Ressource zu erstellen. Sie können Kueue und die topologieabhängige Planung (Topology Aware Scheduling, TAS) so konfigurieren, dass automatisch eine benutzerdefinierte Slice-Ressource erstellt wird. Informationen zu den ersten Schritten finden Sie unter Dynamische Slices mit Kueue und TAS planen.