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 :
- Les TPU dans GKE.
- Présentation du mode "Toute la capacité" des TPU Les fonctionnalités de découpage dynamique sont disponibles exclusivement sur les TPU qui utilisent le mode "Toute la capacité".
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
JobSetet 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
4x4x4pour former une topologie4x4x8. Cette fonctionnalité vous permet de créer des tranches égales ou supérieures à une topologie4x4x4. 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,2x2x4et2x4x4. Par exemple, vous pouvez partitionner un sous-bloc4x4x4en une sous-tranche2x2x4et deux sous-tranches2x2x2. 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.
- Pour la configuration de super-découpage dynamique (topologies égales ou supérieures à
- 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 :
- Utilisez votre propre planificateur pour gérer les ressources personnalisées de tranche. Cette option est utile si vous avez des exigences de planification complexes ou si vous souhaitez intégrer le découpage dynamique à votre infrastructure de planification existante. Pour commencer, consultez la page Utiliser le découpage dynamique avec un planificateur personnalisé.
- Utilisez un planificateur pour créer automatiquement une ressource personnalisée de tranche. Vous pouvez configurer Kueue et la planification tenant compte de la topologie (TAS) pour créer automatiquement une ressource personnalisée de tranche. Pour commencer, consultez la page Planifier des tranches dynamiques avec Kueue et TAS.
Étape suivante
- Demander une capacité TPU en mode "Toute la capacité" mode.
- Planifier des tranches dynamiques avec Kueue et TAS.
- Utiliser le découpage dynamique avec un planificateur personnalisé.