Cette page décrit les techniques disponibles pour obtenir des accélérateurs de calcul, tels que des GPU ou des TPU, en fonction des exigences de vos charges de travail d'IA/de ML. Ces techniques sont appelées options de consommation d'accélérateur dans GKE. Comprendre les différentes options de consommation vous aide à optimiser l'utilisation des ressources pour éviter de les sous-utiliser, à augmenter la probabilité d'obtenir des ressources et à équilibrer les coûts et les performances.
Cette page s'adresse aux administrateurs et opérateurs de plate-forme qui se coordonnent avec les ingénieurs en machine learning (ML) pour obtenir les ressources nécessaires au déploiement réussi des charges de travail d'IA/ML.
Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE.
Comprendre les options de consommation
Vous pouvez sélectionner l'une des options suivantes pour utiliser des accélérateurs sur GKE :
- À la demande : vous consommez des TPU ou des GPU sur GKE sans organiser la capacité à l'avance. Avant de demander des ressources, vous devez disposer d'un quota à la demande suffisant pour le type et la quantité d'accélérateurs spécifiques. L'utilisation à la demande est l'option la plus flexible. Toutefois, il n'est pas garanti qu'il y aura suffisamment de ressources à la demande disponibles pour répondre à votre demande.
- Réservations : vous réservez des ressources pour une période définie. Une réservation peut être l'une des suivantes :
- Réservations futures : vous réservez des ressources pour des durées généralement plus longues à un moment précis dans le futur. Vous bénéficiez d'un accès exclusif aux ressources réservées pendant cette période. Les réservations futures nécessitent l'intervention d'un responsable de compte technique (TAM). Pour en savoir plus, consultez les conseils sur les TPU et les GPU.
- Réservations futures jusqu'à 90 jours (en mode Agenda) : vous demandez de la capacité pour une période spécifiée, et un conseiller d'agenda vous suggère des dates disponibles. Les réservations futures pour une durée maximale de 90 jours (en mode Agenda) offrent plus de flexibilité pour les durées plus courtes et la recherche de capacité en libre-service. Pour en savoir plus, consultez Demandes de réservations futures en mode Agenda.
- Réservations à la demande : vous pouvez demander à provisionner une réservation à la demande dès que la capacité est disponible, comme avec l'option à la demande. Tant que la réservation est active, vous payez pour les ressources, que vous les utilisiez ou non.
- Démarrage flexible : vous sécurisez des ressources à allocation dense pour des charges de travail de courte durée sans réservation. Vous demandez un nombre spécifique de GPU ou de TPU, et Compute Engine les provisionne lorsque la capacité devient disponible. Les GPU ou les TPU s'exécutent sans interruption pendant sept jours maximum. Pour en savoir plus, consultez Provisionnement avec démarrage flexible.
- Spot : vous provisionnez des VM Spot, ce qui vous permet de bénéficier de remises importantes. Toutefois, les VM Spot peuvent être préemptées à tout moment, avec un avertissement de 30 secondes. Pour en savoir plus, consultez la page VM Spot.
Pour optimiser la réussite du provisionnement en cas de contraintes de ressources de calcul, vous pouvez orchestrer ces options à l'aide de ComputeClasses.
Comprendre les quotas d'accélérateurs dans GKE
Les quotas et les limites du système restreignent votre utilisation des ressources Google Cloud afin de garantir la disponibilité des ressources pour tous les utilisateurs Google Cloud . Les quotas ont des valeurs par défaut, mais vous pouvez généralement demander des ajustements. Les limites système sont des valeurs fixes qui ne peuvent pas être modifiées. Par défaut, les projets ne sont généralement pas dotés d'un quota d'accélérateurs important. Vous devez demander et recevoir l'approbation d'un quota pour des types d'accélérateurs et des régions spécifiques.
Tenez compte des caractéristiques suivantes lorsque vous gérez les quotas dont vos charges de travail ont besoin :
Vous devez demander le quota nécessaire pour chaque option de consommation. Pour identifier le quota requis pour chaque option de consommation, consultez les paramètres "Quota" correspondants listés dans le tableau Choisir une option de consommation. Si le quota est insuffisant, les tentatives de création de clusters, de pools de nœuds ou de déploiement de charges de travail nécessitant des accélérateurs échouent avec une erreur
Quota exceeded.Vous devez demander un quota lorsque vous utilisez des ComputeClasses personnalisées dans Autopilot. Les nœuds provisionnés pour répondre aux exigences de ComputeClass consomment toujours le quota de votre projet pour les accélérateurs spécifiés.
Google Cloud Les comptes d'essai sans frais sont soumis à des limites concernant les demandes d'augmentation de quota pour les ressources de grande valeur telles que les GPU et les TPU. Pour accéder au quota d'accélérateurs, passez à un compte payant.
Pour vérifier et demander un quota, accédez à la page Quotas de la console Google Cloud . Vous pouvez filtrer les quotas d'accélérateurs et demander des augmentations.
Identifier une option de consommation
Tenez compte des considérations suivantes pour choisir l'option de consommation la mieux adaptée à votre charge de travail d'IA/de ML :
- Type de charge de travail : tenez compte du type de charge de travail que vous souhaitez implémenter.
Les exigences de GKE varient selon que vous exécutez une charge de travail d'entraînement ou d'inférence :
- Entraînement : nécessite des ressources hautes performances avec une mémoire importante. Les charges de travail d'entraînement ont généralement une durée de vie bien définie. Ces charges de travail sont généralement plus faciles à planifier, car elles sont moins sujettes à des pics soudains de consommation de ressources.
- Inférence : nécessite généralement des accélérateurs optimisés pour l'évolutivité et un coût réduit. Les charges de travail d'inférence peuvent nécessiter une quantité importante de mémoire d'accélérateur lors de pics soudains de consommation de ressources.
- Durée de vie basée sur la phase de mise en œuvre : tenez compte de votre objectif commercial si vous exécutez une démonstration de faisabilité, une évaluation de plate-forme, un développement ou un test d'application, une mise en production ou une optimisation.
- Délai de provisionnement : déterminez si votre charge de travail nécessite une exécution immédiate ou si elle peut être exécutée ultérieurement. Si une exécution ultérieure est possible, déterminez la flexibilité de l'heure de début.
- Équilibre entre coût et performances : évaluez les exigences de performances de votre charge de travail et vos contraintes budgétaires pour sélectionner l'accélérateur le plus rentable. Réfléchissez au compromis à faire entre le coût des accélérateurs et leurs caractéristiques de performances. N'oubliez pas que les nouveaux accélérateurs peuvent améliorer le rapport coût/performances.
Sélectionner une option de consommation
Utilisez le tableau suivant pour choisir une option de consommation :
| Option d'utilisation | Paramètres de provisionnement | Accélérateurs compatibles | Détails | Exemples de charges de travail |
|---|---|---|---|---|
| Réservations à la demande |
|
|
|
|
| Réservations futures |
|
|
|
|
| Réservations futures jusqu'à 90 jours (en mode Agenda) |
|
|
|
|
| Mode de provisionnement Démarrage flexible |
|
|
|
|
| VM Spot |
|
|
|
|
| À la demande (GPU ou TPU) |
|
|
|
Optimiser les coûts et le provisionnement des charges de travail avec ComputeClasses
Vous pouvez utiliser ComputeClasses pour gérer et automatiser de manière dynamique votre stratégie de consommation d'accélérateurs en définissant une liste de configurations de remplacement basée sur la priorité. Lors des opérations de scaling à la hausse, GKE tente de provisionner des nœuds en fonction de la hiérarchie des priorités que vous avez définie.
La liste suivante décrit les options de consommation disponibles avec les ComputeClasses et comment les configurer. Pour obtenir des fichiers manifestes YAML complets, consultez Exemples d'options de consommation avec ComputeClasses.
- Réservations : vous pouvez définir le nom de la réservation dans le champ
reservationsde votre ComputeClass. Cela garantit que GKE tente d'abord de consommer votre capacité réservée avant de basculer. - Mode de provisionnement Démarrage flexible : activez la file d'attente flexible à l'aide du champ
flexStartdans votre ComputeClass, puis configurez les durées de remplacement des nœuds de remplacement à l'aide des champsnodeRecycling. - VM Spot : indiquez à GKE d'utiliser des VM Spot lors du provisionnement des nœuds pour cette règle de priorité en définissant le champ
spotsurtrue. - Capacité à la demande combinée à une règle d'emplacement multizone : déclarez les configurations de machine standards dans la liste des priorités et configurez une stratégie d'emplacement de remplacement à l'aide des champs
location.
Les ComputeClasses ne sont pas compatibles avec les réservations futures ni avec les réservations futures jusqu'à 90 jours (en mode Agenda).
Exemples d'options de consommation avec ComputeClasses
Les sections suivantes fournissent des exemples de configuration pour ces stratégies.
Réservations avec configuration de remplacement
Cette configuration est particulièrement adaptée aux charges de travail qui peuvent tolérer des interruptions, plutôt qu'aux charges de travail qui dépendent de données persistantes ou qui doivent s'exécuter jusqu'à leur terme.
Cette configuration établit une stratégie de remplacement résiliente en procédant comme suit :
- Utiliser les réservations en premier : GKE tente de provisionner des nœuds à l'aide de votre réservation de capacité spécifique préachetée.
- Se rabattre sur le démarrage flexible : si la capacité de réservation est entièrement utilisée, GKE se rabat sur des ressources de démarrage flexible à court terme et à prix réduit.
- Se rabattre sur la facturation à la demande : en dernier recours, GKE provisionne des ressources standards à la demande.
Migrer vers les réservations : l'activation de la migration active indique à GKE de consolider et de migrer automatiquement les charges de travail vers les nœuds de réservation de priorité supérieure dès que la capacité devient disponible. Cette migration peut être perturbante.
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: ha-gpu-fallback spec: activeMigration: optimizeRulePriority: true # Migrate workloads back to reservation when capacity releases priorities: # Priority 1: Consume specific corporate reservation first - gpu: type: nvidia-l4 count: 1 reservations: affinity: Specific specific: - name: reserved-l4-pool project: my-project zones: [us-central1-a] # Priority 2: Fallback to Flex Start (short-duration allocation) - gpu: type: nvidia-l4 count: 1 flexStart: enabled: true # Priority 3: Fallback to On-demand resources - gpu: type: nvidia-l4 count: 1
Mode de provisionnement Démarrage flexible avec configuration du recyclage des nœuds
Cette configuration gère la capacité à prix réduit de courte durée avec un temps d'activité continu en procédant comme suit :
- Demander des VM à démarrage flexible : GKE demande des instances de VM à partir de la file d'attente de démarrage flexible (qui s'exécutent sans interruption pendant sept jours maximum).
- Surveiller l'expiration de la location : GKE suit la durée restante des nœuds à démarrage flexible actifs.
- Déclencher le recyclage des nœuds : 20 minutes (1 200 secondes) avant l'expiration du bail de la VM, GKE provisionne automatiquement un nœud de remplacement.
Reprogrammer les charges de travail : les charges de travail migrent vers le nouveau nœud et reprennent leur exécution sans interruption de service.
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: flex-node-recycling spec: priorities: - gpu: type: nvidia-l4 count: 1 flexStart: enabled: true nodeRecycling: leadTimeSeconds: 1200 # Automatically launch replacement node before VM lease expires
Configuration de la règle d'allocation multizone
Cette configuration contourne les restrictions d'approvisionnement d'une seule zone en procédant comme suit :
- Définir des zones cibles : vous listez plusieurs zones de sauvegarde (telles que
us-central1-a,us-central1-betus-central1-c) dans les règles de priorité. - Élargir les paramètres de ciblage : vous définissez la règle de localisation sur
ANY. Ce paramètre indique à l'autoscaler de cluster de rechercher la capacité demandée dans toutes les zones spécifiées. - Analyser la disponibilité zonale : lors des événements de scaling à la hausse, GKE analyse les zones désignées.
Provisionner dans les zones disponibles : GKE provisionne immédiatement les nœuds de charge de travail demandés dans la zone cible disposant de la capacité correspondante. Cette stratégie évite les blocages dans les files d'attente d'allocation.
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: broad-zonal-serving spec: priorities: - gpu: type: nvidia-l4 count: 1 location: zones: [us-central1-a, us-central1-b, us-central1-c] locationPolicy: ANY # Provision accelerator in any target zone with supply
Étapes suivantes
- Apprenez-en plus sur les GPU dans GKE.
- Apprenez-en plus sur les TPU dans GKE.
- En savoir plus sur l'inférence d'IA et de ML sur GKE