Ce document décrit le slicing dynamique dans Google Kubernetes Engine (GKE) pour Cloud TPU. Le slicing 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 slicing 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 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 :
- TPU dans GKE.
- Présentation du mode TPU All Capacity. Les fonctionnalités de slicing dynamique sont disponibles exclusivement sur les TPU qui utilisent le mode "Toute la capacité".
Qu'est-ce que le slicing dynamique ?
Le slicing dynamique est une fonctionnalité d'optimisation des TPU GKE qui dissocie le provisionnement matériel physique et statique des 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 slicing 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 préprovisionnez l'intégralité de votre capacité TPU dans des pools de nœuds de taille fixe et granulaire. Pour Ironwood (TPU7x), chaque pool de nœuds se compose 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 slicing dynamique GKE reconfigure l'interconnexion réseau TPU pour assembler plusieurs pools de nœuds dans la grande tranche TPU requise ou subdiviser les pools de nœuds pour former des tranches TPU plus petites. Cette reconfiguration crée en quelques secondes la topologie multidimensionnelle précise demandée par une charge de travail.
Avantages du slicing dynamique
La mise en œuvre d'une architecture TPU dynamique dans GKE offre 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 sur 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 temps 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 permet de réduire jusqu'à cinq fois la latence de démarrage des jobs par rapport à la création de pools de nœuds statiques.
- Isolement des défaillances : les défaillances matérielles sont isolées dans la partition spécifique où l'erreur se produit. Cette isolation permet de protéger les autres jobs simultanés du cluster contre les défaillances en cascade.
- Optimisation de l'utilisation des ressources : le slicing dynamique permet d'éliminer les capacités inutilisées ou sous-utilisées. Comme les tranches sont configurées pour répondre aux exigences des charges de travail, le slicing dynamique permet de maximiser l'utilisation du parc et de minimiser le matériel inactif.
- Orchestration déclarative : le slicing dynamique utilise des ressources et des annotations personnalisées natives de Kubernetes, telles que
JobSetet Kueue. Cette approche gère automatiquement la mise en réseau de bas niveau et l'orchestration du matériel.
Configurations de slicing dynamique
Le slicing dynamique propose les configurations suivantes :
Super-slicing 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-slicing 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 l'OCS de manière dynamique, 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 du bord droit se connectent directement aux puces du bord gauche, et le haut se connecte au bas. Si vous visualisiez cette disposition, elle formerait un tore (une forme circulaire).
Sous-découpage dynamique : partitionne un seul pool de nœuds TPU préprovisionné en plusieurs unités indépendantes plus petites au niveau de la charge de travail. Le sous-découpage dynamique vous permet de créer des topologies plus petites au sein d'un même 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 ultérieure dans le canal rapide.Avec le 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 des opérations de réglage, d'expérimentation et d'inférence en ligne. Le sous-découpage fournit une 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 slicing dynamique
Les configurations de slicing dynamique présentent les caractéristiques suivantes :
- Provisionnement incrémentiel des pools de nœuds : le slicing 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 des cubes, même partiellement défectueux.
- Contrôleur de tranche : contrôleur de ressources personnalisées Kubernetes s'exécutant dans le plan de contrôle GKE qui gère le slicing dynamique. Le contrôleur de tranche gère le cycle de vie d'une ressource personnalisée Slice, 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 aider à identifier les nœuds candidats opérationnels.
- Ressource personnalisée Slice : représente la tranche logique et lance la configuration dynamique des liaisons entre les nœuds (ICI et OCS) pour former la topologie TPU demandée. Ce processus assemble plusieurs sous-blocs (super-slicing) ou isole une topologie plus petite au sein d'un seul sous-bloc (sub-slicing). 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 Slice.
Conditions requises
Pour utiliser le slicing dynamique dans GKE, vous devez remplir les conditions suivantes :
- Utilisez un cluster standard dans le canal rapide dans l'une des versions suivantes :
- Pour la configuration de super-slicing dynamique (topologies égales ou supérieures à
4x4x4), utilisez la version 1.35.2-gke.1842000 ou ultérieure. - Pour la configuration de sous-tranches dynamiques (topologies inférieures à
4x4x4), utilisez la version 1.36.0-gke.3712000 ou ultérieure.
- Pour la configuration de super-slicing 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 Capacité totale. Le mode Capacité totale 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 présente un événement de maintenance en attente dont l'heure de fin est 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 slicing dynamique
Pour utiliser le slicing dynamique, vous pouvez utiliser l'une des options suivantes :
- Utilisez votre propre programmeur pour gérer les ressources personnalisées Slice. Cette option est utile si vous avez des exigences de planification complexes ou si vous souhaitez intégrer le slicing dynamique à votre infrastructure de planification existante. Pour commencer, consultez Utiliser le slicing dynamique avec un programmeur personnalisé.
- Utilisez un programmeur pour créer automatiquement une ressource personnalisée Slice. Vous pouvez configurer Kueue et l'ordonnancement basé sur la topologie (TAS) pour créer automatiquement une ressource personnalisée Slice. Pour commencer, consultez Planifier des tranches dynamiques avec Kueue et TAS.
Étapes suivantes
- Demandez de la capacité TPU en mode "Toute la capacité".
- Planifier des tranches dynamiques avec Kueue et TAS.
- Utiliser le slicing dynamique avec un planificateur personnalisé.
- Déployer des charges de travail Cloud TPU avec le slicing dynamique dans Cluster Toolkit