À propos du découpage dynamique GKE

Ce document décrit le découpage dynamique dans Google Kubernetes Engine (GKE) pour Cloud TPU. Le découpage dynamique améliore l'efficacité et la flexibilité des TPU en dissociant le provisionnement des TPU des besoins en tranches de TPU des charges de travail. Le découpage dynamique permet d'améliorer l'utilisation des ressources TPU en réduisant le temps de démarrage des charges de travail jusqu'à cinq fois et le temps de récupération jusqu'à 4, 5 fois.

Le découpage 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 éléments suivants :

Qu'est-ce que le découpage dynamique ?

Le découpage dynamique est une fonctionnalité d'optimisation des TPU GKE qui dissocie le provisionnement physique et statique du matériel TPU de l'allocation des tranches de TPU au moment de l'exécution, lorsque les charges de travail sont planifiées.

Lorsque vous utilisez des topologies TPU statiques, les pools de nœuds GKE sont liés à la topologie spécifique que vous avez configurée lors de la création. En raison de cette limitation, si un nœud d'un pool statique échoue, l'ensemble du pool de nœuds est affecté. La topologie de votre charge de travail doit également correspondre exactement à la topologie TPU du pool de nœuds pour être planifiée, ce qui peut nécessiter un reprovisionnement fréquent de l'infrastructure TPU pour différentes charges de travail.

Le découpage dynamique permet à GKE de configurer des tranches de TPU au moment de l'exécution, lorsque les charges de travail sont planifiées. Au lieu de créer manuellement des pools de nœuds avec la topologie TPU exacte requise pour chaque nouvelle charge de travail, vous provisionnez à l'avance l'intégralité de votre capacité TPU dans des pools de nœuds granulaires de taille fixe. Pour Ironwood (TPU7x), chaque pool de nœuds est constitué d'une topologie 4x4x4, également appelée sous-bloc. Un sous-bloc représente un groupe de 16 nœuds de VM TPU sans maillage de topologie d'interconnexion entre puces (ICI) actif. Au moment de l'exécution, lorsque les charges de travail sont planifiées, le découpage dynamique GKE reconfigure l'interconnexion du réseau TPU pour assembler plusieurs pools de nœuds dans la grande tranche de TPU requise ou subdiviser les pools de nœuds pour former des tranches de TPU plus petites. Cette reconfiguration crée en quelques secondes la topologie multidimensionnelle précise demandée par une charge de travail.

Avantages du découpage dynamique

L'implémentation d'une architecture TPU dynamique dans GKE présente les avantages suivants :

  • Récupération plus rapide des charges de travail : en cas de défaillance matérielle physique, GKE isole le problème dans une seule partition. Le contrôleur de tranche GKE remodèle automatiquement la tranche active et reconfigure le réseau pour remplacer la partition défectueuse par une partition de rechange saine. Ce processus améliore la résilience ou le délai moyen de récupération (MTTR) jusqu'à 4,5 fois par rapport à la recréation d'un pool de nœuds entier.
  • Démarrage accéléré des jobs : les tranches de charge de travail peuvent être formées de manière dynamique, ce qui offre une amélioration jusqu'à cinq fois de la latence de démarrage des jobs par rapport à la création de pools de nœuds statiques.
  • Isolation des pannes : les pannes matérielles sont isolées dans la partition spécifique où se produit la défaillance. Cette isolation permet de protéger les autres jobs simultanés du cluster contre les défaillances en cascade.
  • Utilisation optimisée des ressources : le découpage dynamique permet d'éliminer la capacité inutilisée ou sous-utilisée. Étant donné que les tranches sont configurées pour répondre aux demandes de charge de travail, le découpage dynamique permet de maximiser l'utilisation du parc et de minimiser le matériel inactif.
  • Orchestration déclarative : le découpage dynamique utilise des ressources et des annotations personnalisées natives de Kubernetes, telles que JobSet et Kueue. Cette approche gère automatiquement l'orchestration du matériel et du réseau de bas niveau.

Configurations de découpage dynamique

Le découpage dynamique propose les configurations suivantes :

  • Super-découpage dynamique : combine plusieurs pools de nœuds TPU préprovisionnés et physiquement distincts pour former une seule tranche virtuelle au moment de la planification de la charge de travail. Par exemple, vous pouvez combiner deux pools de nœuds 4x4x4 pour former une topologie 4x4x8. Cette fonctionnalité vous permet de créer des tranches égales ou supérieures à une topologie 4x4x4. Cette configuration nécessite la version 1.35.2-gke.1842000 ou une version ultérieure. Vous pouvez utiliser le super-découpage dynamique pour entraîner de grands modèles de fondation qui dépassent la capacité d'un seul bloc matériel physique.

    Le contrôleur de tranche orchestre les reconfigurations physiques au sein de la structure réseau du commutateur de circuit optique (OCS). En reconfigurant dynamiquement l'OCS, GKE étend le réseau d'interconnexion entre puces (ICI) sur des racks matériels indépendants. Du point de vue des charges de travail, les sous-blocs combinés fonctionnent comme un seul maillage toroïdal. Dans un maillage toroïdal, les connexions s'enroulent. Les puces situées sur le bord droit se reconnectent directement aux puces situées sur le bord gauche, et le haut se connecte au bas. Si vous visualisiez cette disposition, elle formerait un tore (une forme d'anneau).

  • Sous-découpage dynamique : partitionne un seul pool de nœuds TPU préprovisionné en plusieurs unités plus petites et indépendantes au niveau de la charge de travail. Le sous-découpage dynamique vous permet de créer des topologies plus petites dans un seul sous-bloc, en particulier 2x2x1, 2x2x2, 2x2x4 et 2x4x4. Par exemple, vous pouvez partitionner un sous-bloc 4x4x4 en une sous-tranche 2x2x4 et deux sous-tranches 2x2x2. Cette configuration nécessite la version 1.36.0-gke.3712000 ou une version ultérieure dans le canal rapide.

    Avec le sous-découpage dynamique, vous exécutez plusieurs charges de travail sur un seul pool de nœuds physiques. Par exemple, vous pouvez exécuter simultanément le réglage précis, l'expérimentation et l'inférence en ligne. Le sous-découpage assure l'isolation électrique et réseau entre ces sous-tranches, ce qui permet d'isoler les défaillances ou les impacts sur les performances entre les charges de travail.

Principales caractéristiques des configurations de découpage dynamique

Les configurations de découpage dynamique présentent les caractéristiques suivantes :

  • 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 des pools de nœuds. Ce modèle convertit l'intégralité de votre capacité TPU en pools de nœuds comprenant des groupes de 16 nœuds de VM Ironwood (TPU7x), ce qui vous permet de continuer à provisionner et à utiliser même des cubes partiellement défaillants.
  • Contrôleur de tranche : contrôleur de ressource personnalisée Kubernetes s'exécutant dans le plan de contrôle GKE qui gère le découpage dynamique. Le contrôleur de tranche gère le cycle de vie d'une ressource personnalisée de tranche, qui représente une tranche dynamique (gestion de la création, de la surveillance continue et de la suppression). Il propage également les données d'état de l'infrastructure (hôte, ICI, OCS) aux étiquettes de nœud pour identifier les nœuds candidats sains.
  • Ressource personnalisée de tranche : représente la tranche logique et lance la configuration dynamique des liens entre les nœuds (ICI et OCS) pour former la topologie TPU demandée. Ce processus assemble plusieurs sous-blocs (super-découpage) ou isole une topologie plus petite dans un seul sous-bloc (sous-découpage). Vous pouvez inspecter la progression ou l'état de la formation de la tranche dynamique en inspectant les champs d'état de la ressource personnalisée de tranche.

Conditions requises

Pour utiliser le découpage dynamique dans GKE, vous devez répondre aux exigences suivantes :

  • Utilisez un cluster standard dans le canal rapide dans l'une des versions suivantes :
    • Pour la configuration de super-découpage dynamique (topologies égales ou supérieures à 4x4x4), utilisez la version 1.35.2-gke.1842000 ou une version ultérieure.
    • Pour la configuration de sous-découpage dynamique (topologies inférieures à 4x4x4), utilisez la version 1.36.0-gke.3712000 ou une version ultérieure.
  • Utilisez la version Ironwood (TPU7x).
  • Utilisez l'image Container-Optimized OS pour vos nœuds.
  • Pour utiliser le provisionnement incrémentiel, utilisez les réservations en mode "Toute la capacité". Le mode "Toute la capacité" est une fonctionnalité activée par TPU Cluster Director.
  • Pour le sous-découpage dynamique, assurez-vous que vos nœuds ont des événements de maintenance en attente. Surveillez vos instances pour détecter les événements de maintenance en attente. Si l'un de vos nœuds a un événement de maintenance en attente avec une heure de fin comprise entre le 18 septembre 2026 et le 30 septembre 2026, vous devez déclencher manuellement l'événement de maintenance de l'hôte sur ces nœuds avant de pouvoir utiliser le sous-découpage.

Utiliser des planificateurs pour le découpage dynamique

Pour utiliser le découpage dynamique, vous pouvez utiliser l'une des options suivantes :

Étape suivante