À propos du découpage dynamique GKE

Ce document décrit le slicing dynamique dans Google Kubernetes Engine (GKE). Le découpage dynamique vous permet de configurer des sous-blocs de TPU provisionnés dans différentes topologies. Cette fonctionnalité réduit la nécessité de recréer des pools de nœuds, améliore la tolérance aux pannes en permettant la récupération automatique en cas de défaillance et optimise l'utilisation des ressources.

Le slicing dynamique est destiné aux ingénieurs en machine learning (ML) et aux ingénieurs de plate-forme qui souhaitent optimiser l'utilisation des TPU, réduire le temps de provisionnement et améliorer la tolérance aux pannes pour les charges de travail d'entraînement et d'inférence à grande échelle.

Avant de lire ce document, vous devez connaître les points suivants :

Qu'est-ce que le slicing dynamique ?

Le slicing dynamique offre une grande flexibilité dans la gestion de la capacité Cloud TPU en vous permettant de dissocier le provisionnement des TPU. Le découpage dynamique implique le processus suivant :

  1. Provisionnez les ressources sous forme d'unités plus petites : vous provisionnez les ressources sous forme d'unités appelées sous-blocs. Un sous-bloc est l'unité de base logique de la capacité Ironwood (TPU7x). Pour Ironwood (TPU7x), un sous-bloc représente un groupe de 16 VM TPU avec une topologie 4x4x4 de puces TPU interconnectées. Dans le contexte du mode TPU Toute capacité et du partitionnement dynamique, un pool de nœuds correspond directement à un sous-bloc.
  2. Assembler les sous-blocs : le découpage dynamique assemble ces sous-blocs en tranches plus grandes.

Avantages du slicing dynamique

Le découpage dynamique vous permet d'effectuer les opérations suivantes :

  • Réduisez le temps de provisionnement : le provisionnement individuel des sous-blocs permet un provisionnement global plus rapide, car il minimise l'impact de toute défaillance individuelle.
  • Réduisez le délai de reprise : en cas de défaillance d'une puce TPU, la plus petite unité de défaillance est un sous-bloc. Le découpage dynamique isole les sous-blocs défectueux afin que les charges de travail puissent être reprogrammées sur des sous-blocs sains plus rapidement que si vous deviez reprovisionner une tranche entière.
  • Remodeler la capacité : si vos charges de travail ont des exigences diverses, vous n'avez pas besoin de supprimer et de recréer des pools de nœuds pour les modifications de la topologie. À la place, vous pouvez reconfigurer dynamiquement les pools de nœuds provisionnés pour qu'ils correspondent aux formes spécifiées.

Éléments clés du slicing dynamique

Le slicing dynamique introduit les concepts clés suivants :

  • Provisionnement incrémentiel des pools de nœuds : le découpage dynamique utilise le provisionnement incrémentiel, qui est un modèle de provisionnement tolérant aux pannes pour les pools de nœuds. Ce modèle convertit toute votre capacité TPU en pools de nœuds de groupes de 16 VM TPU.
  • Contrôleur de tranche : contrôleur de ressources personnalisées Kubernetes s'exécutant dans le plan de contrôle GKE et gérant le découpage dynamique. Le contrôleur de tranche gère le cycle de vie d'une ressource personnalisée Slice, qui représente une tranche dynamique. Le contrôleur de tranche gère la création, la surveillance continue et la suppression de la tranche. Lorsque vous utilisez un planificateur, celui-ci dirige la création et la suppression de la ressource personnalisée Slice.
  • Ressource personnalisée de tranche : assemble dynamiquement les sous-blocs en fonction de la topologie TPU demandée. Ce processus repose sur la reconfiguration dynamique du réseau OCS pour connecter les pools de nœuds TPU, ce qui permet d'assurer des performances optimisées. Vous pouvez inspecter la progression ou l'état de la formation de tranches dynamiques en examinant les champs d'état de la ressource personnalisée Slice.

Utiliser des planificateurs pour le découpage dynamique

Pour utiliser le slicing dynamique, vous pouvez utiliser l'une des options suivantes :

Étapes suivantes