Cette page présente Cloud TPU et vous indique où trouver des informations sur son utilisation avec Google Kubernetes Engine (GKE). Les TPU (Tensor Processing Units) sont des circuits intégrés spécifiques aux applications (ASIC) développés spécifiquement par Google et permettant d'accélérer les charges de travail de machine learning qui utilisent des frameworks tels que TensorFlow, PyTorch et JAX.
Avant d'utiliser des TPU dans GKE, nous vous recommandons de suivre le parcours de formation suivant :
- Découvrez comment les accélérateurs de machine learning fonctionnent avec la présentation de Cloud TPU.
- Découvrez la disponibilité actuelle des versions de TPU avec l'architecture système de Cloud TPU.
Pour apprendre à configurer Cloud TPU dans GKE, consultez les ressources suivantes :
- Déployez des charges de travail TPU dans GKE Autopilot
- Déployer des charges de travail TPU dans GKE Standard
Avantages de l'utilisation des TPU dans GKE
GKE fournit une assistance complète pour la gestion du cycle de vie des VM TPU, y compris la création, la configuration et la suppression de VM TPU. GKE est également compatible avec les VM Spot et l'utilisation de Cloud TPU réservés. L'utilisation de TPU dans GKE présente les avantages suivants :
- Environnement opérationnel cohérent : plate-forme unique pour toutes les charges de travail et machine learning.
- Mises à jour automatiques : GKE automatise les mises à jour de versions afin de réduire les coûts opérationnels.
- Équilibrage de charge : GKE répartit la charge afin de réduire la latence et d'améliorer la fiabilité.
- Scaling réactif : GKE effectue le scaling automatique des ressources TPU pour répondre aux besoins de vos charges de travail.
- Gestion des ressources : avec Kueue, un système de mise en file d'attente de jobs Kubernetes natif, vous pouvez gérer les ressources de plusieurs locataires au sein de votre organisation à l'aide de la mise en file d'attente, de la préemption, de la priorisation et du partage équitable.
Terminologie relative au TPU dans GKE
Ce document utilise la terminologie suivante liée aux TPU :
- Type de TPU : type de Cloud TPU, tel que v5e
- Tranche de TPU : ensemble de puces TPU interconnectées
- Topology TPU : nombre et disposition physique des puces TPU dans une tranche de TPU.
- Nœuds de tranche de TPU à hôte unique : un ou plusieurs nœuds TPU indépendants. Les TPU associés aux VM ne sont pas interconnectés par des interconnexions à haut débit.
- Nœuds de tranche de TPU multi-hôte : au moins deux nœuds TPU interconnectés. Les TPU associés aux VM sont connectés par des interconnexions à haut débit. Les nœuds TPU à hôtes multiples présentent les caractéristiques suivantes :
- Atomique : GKE traite tous les nœuds interconnectés comme une seule unité. Lors des opérations de scaling, GKE procède au scaling de l'ensemble de nœuds entier à 0 et crée des nœuds. En cas de défaillance ou d'arrêt d'une machine du groupe, GKE recrée l'ensemble des nœuds en tant que nouvelle unité.
- Immuable : vous ne pouvez pas ajouter manuellement de nouveaux nœuds à l'ensemble de nœuds interconnectés.
Fonctionnement des TPU dans GKE
La gestion des ressources et la priorité de Kubernetes traitent les VM TPU de la même manière que les autres types de VM. Vous demandez des puces TPU via le nom de ressource google.com/tpu
:
resources:
requests:
google.com/tpu: 4
limits:
google.com/tpu: 4
Lorsque vous utilisez des TPU dans GKE, vous devez prendre en compte les caractéristiques TPU suivantes :
- Une VM TPU peut accéder à huit puces TPU au maximum.
- Une tranche de pod TPU contient un nombre fixe de puces TPU, qui dépend du type de machine TPU que vous choisissez.
- Le nombre de
google.com/tpu
demandés doit être égal au nombre total de puces disponibles sur le nœud TPU. Tout conteneur d'un pod GKE qui demande des TPU doit consommer toutes les puces TPU du nœud. Sinon, votre déploiement échoue, car GKE ne peut pas consommer partiellement les ressources TPU. Par exemple, consultez les scénarios suivants :- Le type de machine
ct5l-hightpu-8t
possède un seul nœud TPU avec huit puces TPU. Un pod GKE nécessitant huit puces TPU peut être déployé sur le nœud, mais deux pods GKE nécessitant quatre puces TPU ne peuvent pas être déployés sur un nœud. - Le type de machine
ct5lp-hightpu-4t
avec une topologie2x4
contient deux nœuds TPU avec quatre puces chacun, soit un total de huit puces TPU. Un pod GKE nécessitant huit puces TPU ne peut pas être déployé dans l'un des nœuds de ce pool, mais deux pods nécessitant quatre puces TPU peuvent être déployés dans les deux nœuds du pool. - Le TPU v5e avec la topologie 4x4 comporte 16 puces dans quatre nœuds. La charge de travail GKE Autopilot qui sélectionne cette configuration doit demander quatre puces dans chaque instance dupliquée, pour un maximum de quatre instances répliquées.
- Le type de machine
- Dans les clusters Standard, plusieurs pods Kubernetes peuvent être programmés sur une VM TPU, mais un seul conteneur de chaque pod peut accéder aux puces TPU.
- Chaque cluster Standard doit disposer d'au moins un pool de nœuds non TPU pour créer des pods kube-system, tels que kube-dns.
- Par défaut, les nœuds TPU ont un rejet
google.com/tpu
qui empêche la planification des pods non TPU. Le rejet ne garantit pas que les ressources TPU sont entièrement utilisées. Il vous permet d'exécuter des charges de travail qui n'utilisent pas de TPU sur des nœuds non TPU, ce qui libère de la capacité de calcul sur les nœuds TPU pour le code utilisant des TPU. - GKE collecte les journaux émis par les conteneurs s'exécutant sur des VM TPU. Pour en savoir plus, consultez la section Journalisation.
- Les métriques d'utilisation du TPU, telles que les performances d'exécution, sont disponibles dans Cloud Monitoring. Pour en savoir plus, consultez la section Observabilité et métriques.
Planifier la configuration TPU
Pour utiliser des TPU dans des clusters GKE, vous devez définir les paramètres suivants :
- Type de TPU : les différents types de TPU présentent des caractéristiques différentes, telles que les ratios prix-performances, le débit d'entraînement et la latence de diffusion. Les VM auxquelles les TPU sont associés ont des capacités de processeur et de mémoire différentes.
- Topologie : disposition des puces dans le type de TPU. Chaque type de TPU accepte une disposition de puce 2D ou 3D et des dispositions spécifiques. Sélectionnez une topologie correspondant aux exigences de parallélisme de votre modèle.
Interconnectivité TPU : le type et la topologie de TPU déterminent si vous disposez ou non de TPU dans plusieurs nœuds avec des interconnexions à haut débit. Cela détermine si vous souhaitez des nœuds de tranche de TPU à hôte unique ou multi-hôte.
- Pour les modèles à grande échelle, utilisez des nœuds de tranche de TPU multi-hôte.
- Pour les modèles à petite échelle, utilisez des nœuds de tranche de TPU à hôte unique.
Choisir une configuration TPU pour le mode GKE Autopilot
Dans Autopilot, vous choisissez un type de TPU et une topologie, puis vous les spécifiez dans votre fichier manifeste Kubernetes. GKE gère le provisionnement des nœuds à l'aide de TPU et la planification de vos charges de travail.
Disponibilité des TPU dans GKE Autopilot
Les TPU sont disponibles dans des régions Google Cloud spécifiques. Pour utiliser un type de TPU dans votre charge de travail GKE, votre cluster doit se trouver dans une région compatible avec ce type. Pour en savoir plus, consultez la section Régions et zones TPU dans la documentation Cloud TPU.
Choisir un type de TPU dans Autopilot
Type de TPU | Nombre de vCPU | Mémoire (Gio) | Nombre de nœuds NUMA | Nombre maximal de puces TPU dans une tranche |
---|---|---|---|---|
TPU v5p (preview)tpu-v5p-slice |
208 | 448 | 2 | 6 144 |
TPU v5etpu-v5-lite-podslice |
Entre 24 et 224 | Entre 48 et 384 | 1 | 256 |
TPU v5e (hôte unique uniquement)tpu-v5-lite-device |
Entre 24 et 224 | Entre 48 et 384 | Entre 1 et 2 | 8 |
TPU v4tpu-v4-podslice |
240 | 407 | 2 | 4 096 |
Consultez les caractéristiques des puces et la tarification dans la documentation Cloud TPU pour choisir la version à utiliser.
Choisir une topologie pour Autopilot
La topologie est la disposition physique des puces dans une tranche de TPU. Selon le type de TPU, la topologie est bidimensionnelle ou tridimensionnelle. Après avoir choisi un type de TPU, sélectionnez une topologie compatible avec ce type de TPU. Les exigences de parallélisme de votre modèle vous aideront à choisir une topologie. Le produit de la topologie est le nombre de puces dans la tranche. Exemple :
2x2x2
est une tranche de TPU multi-hôte v4 à huit puces2x2
est une tranche de TPU v5e à hôte unique à quatre puces
La topologie que vous sélectionnez pour un type de TPU détermine si vous obtenez des nœuds de tranche de TPU à hôtes unique ou multi-hôte. Si une topologie spécifique est compatible avec les tranches à hôte unique et multi-hôte, le nombre de puces TPU demandées par votre charge de travail détermine le type d'hôte que vous obtenez. Par exemple, les TPU v5e (tpu-v5-lite-podslice
) acceptent la topologie 2x4 en tant que TPU unique et multi-hôte. Si vous demandez quatre puces dans votre charge de travail, vous obtenez un nœud multi-hôte comportant quatre puces. Si vous demandez huit puces dans votre charge de travail, vous obtenez un nœud à hôte unique comportant huit puces.
Le tableau suivant décrit les topologies compatibles avec chaque type de TPU, ainsi que le nombre de puces, le nombre de nœuds et le type d'hôte :
Type de TPU | Topology | Puces TPU dans une tranche | Nombre de nœuds | Type d'hôte | Notes |
---|---|---|---|---|---|
TPU v5p (preview)tpu-v5p-slice |
2x2x1 | 4 | 1 | Un seul hôte | Les topologies personnalisées pour plus de 64 puces sont acceptées. Les conditions suivantes s'appliquent :
|
2x2x2 | 8 | 2 | Hôte multiple | ||
2x2x4 | 16 | 4 | Hôte multiple | ||
2x4x4 | 32 | 8 | Hôte multiple | ||
4x4x4 | 64 | 16 | Hôte multiple | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | Hôte multiple | ||
TPU v5etpu-v5-lite-podslice |
1x1 | 1 | 1 | Un seul hôte | Les topologies personnalisées ne sont pas acceptées. |
2x2 | 4 | 1 | |||
2x4 | 8 | 1 | |||
2x4 | 2 | 1 | Hôte multiple | ||
4x4 | 16 | 4 | |||
4x8 | 32 | 8 | |||
8x8 | 64 | 16 | |||
8x16 | 128 | 32 | |||
16x16 | 256 | 64 | |||
TPU v5e (hôte unique uniquement)tpu-v5-lite-device |
1x1 | 1 | 1 | Un seul hôte | Les topologies personnalisées ne sont pas compatibles |
2x2 | 4 | 1 | |||
2x4 | 8 | 1 | |||
TPU v4tpu-v4-podslice |
2x2x1 | 4 | 1 | Un seul hôte | Les topologies personnalisées pour plus de 64 puces sont acceptées. Les conditions suivantes s'appliquent :
|
2x2x2 | 8 | 2 | Hôte multiple | ||
2x2x4 | 16 | 4 | Hôte multiple | ||
2x4x4 | 32 | 8 | Hôte multiple | ||
4x4x4 | 64 | 16 | Hôte multiple | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | Hôte multiple |
-
Calcul effectué en divisant le produit de topologie par quatre. ↩
Après avoir choisi un type et une topologie de TPU, spécifiez-les dans le fichier manifeste de votre charge de travail. Pour obtenir des instructions, consultez la page Déployer des charges de travail TPU sur GKE Autopilot.
Choisir une configuration TPU pour le mode GKE Standard
Les sections suivantes décrivent les caractéristiques de TPU que vous évaluez lors de la planification et de la configuration de vos charges de travail TPU dans GKE. Pour en savoir plus sur les versions disponibles, les types de machines, les topologies valides et le nombre de puces associé, consultez la section Mappage de la configuration du TPU de ce document.
Disponibilité des TPU en mode GKE Standard
Le tableau suivant répertorie la disponibilité des TPU en fonction du type de machine et de la version :
Version du TPU | Type de machine commençant par | Version GKE minimum | Qui peut en bénéficier ? | Zone |
---|---|---|---|---|
TPU v4 | ct4p- |
1.26.1-gke.1500 | Disponibilité générale | us-central2-b |
TPU v5e | ct5l- |
1.27.2-gke.2100 | Disponibilité générale | europe-west4-b |
us-central1-a |
||||
TPU v5e | ct5lp- |
1.27.2-gke.2100 | Disponibilité générale | europe-west4-a 1 |
us-central1-a 1 |
||||
us-east1-c |
||||
us-east5-b 1 |
||||
us-west1-c |
||||
us-west4-a |
||||
us-west4-b 1 |
||||
TPU v5p | ct5p- |
1.28.3-gke.1024000 | Aperçu | us-east1-d |
us-east5-a |
||||
us-east5-c |
-
Lors de la création d'un TPU v5e avec un type de machine commençant par
ct5lp-
dans l'une des zoneseurope-west4-a
,us-central1-a
,us-east5-b
ouus-west4-b
, les pools de nœuds TPU v5e à hôte unique ne sont pas compatibles. En d'autres termes, lors de la création d'un pool de nœuds TPU v5e dans l'une de ces zones, seul le type de machinect5lp-hightpu-4t
avec une topologie d'au moins2x4
ou plus est accepté. Pour créer un TPU à hôte unique v5e dansus-central1
oueurope-west4
, choisissez respectivement les zonesus-central1-a
oueurope-west4-b
, et utilisez des types de machines commençant parct5l-
, commect5l-hightpu-1t
,ct5l-hightpu-4t
ouct5l-hightpu-8t
. Pour créer un TPU v5e à hôte unique dans la régionus-west4
, choisissez la zoneus-west4-a
et utilisez des types de machines commençant parct5lp-
, commect5lp-hightpu-1t
. Notez que les types de machines commençant parct5l-
nécessitent un quota différent de celui des types de machines commençant parct5lp-
. ↩
Les sections suivantes décrivent les caractéristiques de TPU que vous évaluez lors de la planification et de la configuration de vos charges de travail TPU dans GKE. Pour en savoir plus sur les versions disponibles, les types de machines, les topologies valides et le nombre de puces associé, consultez la section Mappage de la configuration du TPU de ce document.
Type de machine
Les types de machines compatibles avec les ressources TPU suivent une convention d'attribution de noms qui inclut la version de TPU et le nombre de puces par nœud, par exemple ct<version>-hightpu-<node-chip-count>t
. Par exemple, le type de machine ct5lp-hightpu-1t
est compatible avec les TPU v5e et contient une seule puce TPU au total.
Topology
La topologie définit la disposition physique des TPU dans une tranche de pod TPU. GKE provisionne une tranche de pod TPU dans des topologies à deux ou trois dimensions en fonction de la version du TPU. Vous spécifiez une topologie en tant que nombre de puces TPU dans chaque dimension :
Pour un TPU v4 et v5p planifié dans des pools de nœuds TPU à hôtes multiples, vous définissez la topologie à trois tuples (
{A}x{B}x{C}
), par exemple4x4x4
. Le produit de{A}x{B}x{C}
définit le nombre de puces dans le pool de nœuds. Par exemple, vous pouvez définir de petites topologies inférieures à 64 puces avec des formes de topologie telles que2x2x2
,2x2x4
ou2x4x4
. Si vous utilisez des topologies de plus de 64 puces, les valeurs attribuées à {A}, {B} et {C} doivent répondre aux conditions suivantes :- {A}, {B} et {C} sont des multiples de quatre.
- La topologie la plus grande compatible avec v4 est
12x16x16
et avec v5p16x16x24
. - Les valeurs attribuées conservent le modèle A ≤ B ≤ C. Par exemple,
4x4x8
ou8x8x8
.
Mappage de la configuration du TPU
Utilisez le tableau suivant pour définir le type de machine et la topologie TPU à utiliser en fonction de votre cas d'utilisation :
- Pour l'entraînement ou l'inférence de modèles à petite échelle, utilisez des TPU v4 ou des TPU v5e avec des pools de nœuds de tranche de pod TPU à hôte unique.
- Pour l'entraînement ou l'inférence de modèles à grande échelle, utilisez des TPU v4 ou des TPU v5e avec des pools de nœuds de tranche de pod TPU à hôtes multiples.
Version du TPU | Type de machine | Topology | Nombre de puces TPU | Nombre de VM | Type de pool de nœuds |
---|---|---|---|---|---|
TPU v4 | ct4p-hightpu-4t |
2x2x1 | 4 | 1 | Un seul hôte |
2x2x2 | 8 | 2 | Hôte multiple | ||
2x2x4 | 16 | 4 | Hôte multiple | ||
2x4x4 | 32 | 8 | Hôte multiple | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | Hôte multiple | ||
TPU v5p | ct5p-hightpu-4t |
2x2x1 | 4 | 1 | Un seul hôte |
2x2x2 | 8 | 2 | Hôte multiple | ||
2x2x4 | 16 | 4 | Hôte multiple | ||
2x4x4 | 32 | 8 | Hôte multiple | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | Hôte multiple | ||
TPU v5e | ct5l-hightpu-1t |
1x1 | 1 | 1 | Un seul hôte |
ct5l-hightpu-4t |
2x2 | 4 | 1 | Un seul hôte | |
ct5l-hightpu-8t |
2x4 | 8 | 1 | Un seul hôte | |
ct5lp-hightpu-1t |
1x1 | 1 | 1 | Un seul hôte | |
ct5lp-hightpu-4t |
2x2 | 4 | 1 | Un seul hôte | |
ct5lp-hightpu-8t |
2x4 | 8 | 1 | Un seul hôte | |
ct5lp-hightpu-4t |
2x4 | 8 | 2 | Hôte multiple | |
4x4 | 16 | 4 | Hôte multiple | ||
4x8 | 32 | 8 | Hôte multiple | ||
8x8 | 64 | 16 | Hôte multiple | ||
8x16 | 128 | 32 | Hôte multiple | ||
16x16 | 256 | 64 | Hôte multiple |
-
Calcul effectué en divisant le produit de topologie par quatre. ↩
Caractéristiques du TPU v5e
Les machines TPU v5e présentent les caractéristiques techniques suivantes :
Type de machine | Nombre de processeurs virtuels | Mémoire (Go) | Nombre de nœuds NUMA | Probabilité de préemption |
---|---|---|---|---|
ct5l-hightpu-1t |
24 | 48 | 1 | plus élevé |
ct5l-hightpu-4t |
112 | 192 | 1 | Moyenne |
ct5l-hightpu-8t |
224 | 384 | 2 | Diminution |
ct5lp-hightpu-1t |
24 | 48 | 1 | plus élevé |
ct5lp-hightpu-4t |
112 | 192 | 1 | Moyenne |
ct5lp-hightpu-8t |
224 | 384 | 1 | Faible |
Caractéristiques des TPU v4 et v5p
Les machines TPU v4p et v5p présentent les caractéristiques techniques suivantes :
Type de machine | Nombre de processeurs virtuels | Mémoire (Go) | Nombre de nœuds NUMA |
---|---|---|---|
ct4p-hightpu-4t |
240 | 407 | 2 |
ct5p-hightpu-4t |
208 | 448 | 2 |
Réservation TPU
Pour vous assurer que les ressources TPU sont disponibles lorsque vous en avez besoin, vous pouvez utiliser des réservations TPU dans les scénarios suivants :
Si vous disposez de réservations TPU existantes, vous devez collaborer avec votre équipe chargée de compte Google Cloud pour migrer votre réservation TPU vers un nouveau système de réservation basé sur Compute Engine.
Si vous n'avez pas de réservation TPU existante, vous pouvez créer une réservation TPU et aucune migration n'est nécessaire.
Autoscaling des TPU dans GKE
GKE est compatible avec les TPU (Tensor Processing Units) pour accélérer les charges de travail de machine learning. Le pool de nœuds de tranche TPU à hôte unique et le pool de nœuds de tranche TPU multi-hôte sont tous deux compatibles avec l'autoscaling et le provisionnement automatique.
Avec l'option --enable-autoprovisioning
sur un cluster GKE, GKE crée ou supprime des pools de nœuds de tranche TPU à hôte unique ou multi-hôte avec une version et une topologie de TPU qui répondent aux exigences des charges de travail en attente.
Lorsque vous utilisez --enable-autoscaling
, GKE procède au scaling du pool de nœuds en fonction de son type, comme suit :
Pool de nœuds de tranche TPU à hôte unique : GKE ajoute ou supprime des nœuds TPU dans le pool de nœuds existant. Le pool de nœuds peut contenir un nombre de nœuds TPU compris entre zéro et la taille maximale du pool de nœuds, tel que déterminé par les options --max-nodes et --total-max-nodes. Lorsque le pool de nœuds effectue un scaling, tous les nœuds TPU du pool de nœuds ont le même type de machine et la même topologie. Pour en savoir plus sur la création d'un pool de nœuds de tranche TPU à hôte unique, consultez la section Créer un pool de nœuds.
Pool de nœuds de tranche TPU multi-hôte : GKE effectue un scaling du pool de nœuds de façon atomique, de zéro jusqu'au nombre de nœuds requis pour satisfaire la topologie TPU. Par exemple, pour un pool de nœuds TPU avec un type de machine
ct5lp-hightpu-4t
et une topologie16x16
, le pool de nœuds contient 64 nœuds. L'autoscaler GKE s'assure que ce pool de nœuds comporte exactement 0 ou 64 nœuds. Lors d'un nouveau scaling à la baisse, GKE supprime tous les pods planifiés et draine l'intégralité du pool de nœuds jusqu'à zéro. Pour en savoir plus sur la création d'un pool de nœuds de tranche TPU multi-hôte, consultez la section Créer un pool de nœuds.
Limites
- Pour les réservations de capacité, vous devez utiliser une réservation spécifique.
- La répartition des coûts et la mesure de l'utilisation de GKE n'incluent aucune donnée sur l'utilisation ou les coûts des TPU v4 réservés.
- Les TPU v5p et v5e ne sont pas compatibles avec le streaming d'image/Riptide dans la région us-east5.
Considérations sur la planification des charges de travail
Les TPU présentent des caractéristiques uniques qui nécessitent une planification et une gestion spéciales des charges de travail dans Kubernetes. Les sections suivantes décrivent les bonnes pratiques concernant la planification.
CPU
Cette section ne s'applique pas aux clusters Autopilot, car GKE place chaque pod TPU sur son propre nœud.
Pour programmer une charge de travail sur le processeur intégré d'une VM TPU, assurez-vous que votre pod GKE peut tolérer le rejet google.com/tpu
. Si vous souhaitez que la charge de travail soit déployée sur des nœuds spécifiques, utilisez des sélecteurs de nœuds.
La gestion des ressources et la priorité de Kubernetes traitent les VM TPU de la même manière que les autres types de VM. Pour attribuer aux pods nécessitant des TPU une priorité de planification sur les autres pods des mêmes nœuds, demandez la quantité maximale de processeurs ou de mémoire de ces pods TPU. Les pods de faible priorité doivent effectuer les opérations suivantes :
- Définissez un nombre faible de demandes de ressources mémoire et de processeur pour vous assurer que le nœud dispose de suffisamment de ressources pouvant être allouées aux charges de travail TPU. Pour en savoir plus, consultez la section Comment Kubernetes applique les demandes et les limites de ressources.
- Ne définissez aucune limite de processeur (illimité) pour vous assurer que les pods peuvent passer en utilisation intensive pour utiliser tous les cycles inutilisés.
- Définissez une limite de mémoire élevée pour vous assurer que les pods peuvent utiliser la plupart de la mémoire inutilisée tout en maintenant la stabilité des nœuds.
Si un pod Kubernetes ne demande pas de ressources processeur et de mémoire (même s'il demande des TPU), Kubernetes le considère comme un pod "best effort", et rien ne garantit qu'il ait besoin de processeur et de mémoire. Seuls les pods qui demandent explicitement des ressources de processeur et de mémoire disposent de ces garanties. Pour en savoir plus, consultez la section Gestion des ressources pour les pods et les conteneurs.
Pour en savoir plus, consultez les bonnes pratiques Kubernetes : demandes de ressources et limites.
Optimiser l'exécution de la charge de travail sans interruption
Si vous utilisez des TPU pour entraîner un modèle de machine learning et que votre charge de travail est interrompue, toutes les tâches effectuées depuis le dernier point de contrôle sont perdues. Pour réduire la probabilité d'interruption de votre charge de travail, procédez comme suit :
- Définissez une priorité plus élevée pour cette tâche que pour toutes les autres tâches : si les ressources sont peu nombreuses, le programmeur GKE préempte les tâches de priorité inférieure pour planifier une tâche de priorité supérieure. Cela garantit également que votre charge de travail de priorité supérieure reçoit toutes les ressources dont elle a besoin (dans la limite du nombre total de ressources disponibles dans le cluster). Pour en savoir plus, consultez la section Priorité et préemption des pods.
- Configurez l'exclusion de maintenance : une exclusion de maintenance est une période non récurrente pendant laquelle la maintenance automatique est interdite. Pour en savoir plus, consultez la section Exclusions de maintenance.
- Utiliser des pods à durée d'exécution prolongée dans Autopilot : utilisez des pods à durée d'exécution prolongée pendant un délai de grâce allant jusqu'à sept jours avant que GKE n'arrête vos pods pour effectuer des scalings à la baisse ou les mises à niveau de nœuds.
Optimiser l'utilisation des TPU
Pour optimiser votre investissement dans les TPU, programmez une combinaison de priorités de tâches et mettez-les en file d'attente pour optimiser la durée de fonctionnement de vos TPU. Si vous souhaitez planifier et préempter les tâches, vous devez utiliser un module complémentaire pour Kubernetes qui orchestre les tâches en files d'attente. Nous vous recommandons d'utiliser Kueue pour ce cas d'utilisation.
Étapes suivantes
- Suivez les instructions de la page Déployer des charges de travail TPU dans GKE pour configurer Cloud TPU avec GKE.
- Découvrez les bonnes pratiques en matière d'utilisation de Cloud TPU pour vos tâches de machine learning.
- Créez des modèles de machine learning à grande échelle dans Cloud TPU avec GKE.
- Diffusez des grands modèles de langage avec KubeRay sur des TPU.