À propos des options de consommation d'accélérateurs pour les charges de travail d'IA/de ML dans GKE

Cette page décrit les techniques disponibles que vous pouvez utiliser 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/ML. Ces techniques sont appelées options d'utilisation des accélérateurs dans GKE. Comprendre les différentes options d'utilisation 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 est destinée aux administrateurs et opérateurs de plate-forme qui collaborent avec des 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 auxquels nous faisons référence dans Google Cloud le contenu, consultez Rôles et tâches courants des utilisateurs GKE.

Comprendre les options d'utilisation

Vous pouvez choisir parmi les options suivantes pour utiliser des accélérateurs sur GKE :

  • À la demande : vous utilisez 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é spécifiques d'accélérateurs. L'option à la demande est la plus flexible. Toutefois, il n'est pas garanti que suffisamment de ressources à la demande soient 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 disposez 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 concernant 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 les dates disponibles. Les réservations futures jusqu'à 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 qu'une réservation à la demande soit provisionnée dès que la capacité est disponible, comme pour l'option à la demande. Tant que la réservation est active, vous payez les ressources, que vous les utilisiez ou non.
  • Démarrage flexible : vous sécurisez des ressources à allocation dense pour les 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 à 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 VM Spot.

Pour optimiser la réussite du provisionnement en cas de contraintes sur les ressources de calcul, vous pouvez orchestrer ces options à l'aide de ComputeClasses.

Comprendre le quota d'accélérateurs dans GKE

Les quotas et les limites système restreignent votre utilisation des Google Cloud ressources afin de garantir leur disponibilité pour tous les Google Cloud utilisateurs. 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 fournis avec un quota d'accélérateurs important. Vous devez demander et recevoir une approbation pour le quota de types et de régions d'accélérateurs 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 d'utilisation. Pour identifier le quota requis pour chaque option d'utilisation, consultez les paramètres "Quota" correspondants listés dans le tableau Sélectionner une option d'utilisation. Si le quota est insuffisant, les tentatives de création de clusters ou de pools de nœuds, ou de déploiement de charges de travail nécessitant des accélérateurs échoueront 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 à forte valeur ajoutée, 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 Google Cloud console. Vous pouvez filtrer les quotas d'accélérateurs et demander des augmentations.

Identifier une option d'utilisation

Tenez compte des points suivants pour choisir la meilleure option d'utilisation pour votre charge de travail d'IA/ML :

  • Type de charge de travail : réfléchissez au 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 inférieur. Les charges de travail d'inférence peuvent nécessiter une mémoire d'accélérateur importante lors de pics soudains de consommation de ressources.
  • Durée de vie en fonction de la phase d'implémentation : tenez compte de votre objectif commercial si vous exécutez une preuve de concept (POC), une évaluation de plate-forme, un développement ou un test d'application, une 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 l'exécution future 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 les 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 les rapports coût/performances.

Sélectionner une option d'utilisation

Utilisez le tableau suivant pour choisir une option d'utilisation :

Option d'utilisation Paramètres de provisionnement Accélérateurs compatibles Détails Exemples de charges de travail
Réservations à la demande
  • Délai de provisionnement : immédiat (avec réservation approuvée)
  • Durée de vie : à long terme (par réservation)
  • N'importe quel GPU (sauf A4X, A4 ou A3 Ultra)
  • N'importe quel TPU
  • Coût : vous êtes facturé pour l'intégralité de la période de réservation.
  • Quota : le quota est automatiquement augmenté avant la livraison de la capacité.
  • Charges de travail de longue durée et à grande échelle, telles que le pré-entraînement de modèles de fondation ou l'inférence multihôte.
  • Charges de travail de production.
Réservations futures
  • Délai de provisionnement : immédiat (avec réservation approuvée)
  • Durée de vie : à long terme (par réservation)
  • G2
  • A2
  • A3 High avec 8 GPU
  • A3 Mega
  • A3 Edge
  • Coût : vous êtes facturé pour l'intégralité de la période de réservation.
  • Quota : le quota est automatiquement augmenté avant la livraison de la capacité.
  • Charges de travail de longue durée et à grande échelle, telles que le pré-entraînement de modèles de fondation ou l'inférence multihôte.
  • Charges de travail de production.
Réservations futures jusqu'à 90 jours (en mode Agenda)
  • Délai de provisionnement : immédiat (avec réservation approuvée)
  • Durée de vie : jusqu'à 90 jours
  • A4
  • A3 Ultra
  • A3 Mega
  • A3 High avec 8 GPU
  • A3 Edge
  • Ironwood (TPU7x)
  • TPU v6e
  • TPU v5p
  • TPU v5e
  • Coût : réduit (jusqu'à 53%) Vous êtes facturé pour la période de réservation.
  • Quota : aucun quota n'est facturé.
  • Charges de travail distribuées de courte durée, telles que l'affinage de modèles, les simulations ou l'inférence par lot, où une heure de début précise est nécessaire.
  • Charges de travail pour l'évaluation de la plate-forme, l'analyse comparative ou les tests d'optimisation.
Mode de provisionnement Démarrage flexible
  • Délai de provisionnement : à la demande (sous réserve de disponibilité)
  • Durée de vie : jusqu'à sept jours par allocation
  • Toutes les familles de GPU, sauf A4X
  • Toutes les versions de TPU
  • Charges de travail par lot, telles que l'entraînement de petits modèles, l'affinage ou l'inférence évolutive, où l'heure de début est flexible.
  • Charges de travail pour les POC ou les tests d'intégration.
VM Spot
  • Délai de provisionnement : à la demande (sous réserve de disponibilité)
  • Durée de vie : variable, peut être préemptée avec un avertissement de 30 secondes
  • Toutes les familles de GPU, sauf A4X
  • Toutes les versions de TPU
  • Charges de travail tolérantes aux pannes et de priorité inférieure, telles que l'intégration continue/la livraison continue (CI/CD), l'analyse de données ou le calcul hautes performances (HPC).
  • Charges de travail hautement interruptibles.
À la demande (GPU ou TPU)
  • Délai de provisionnement : immédiat (sous réserve de disponibilité)
  • Durée de vie : illimitée
  • Toutes les familles de GPU, sauf A4X, A4 ou A3 Ultra
  • Toutes les versions de TPU
  • Coût : vous payez à l'usage.
  • Quota : le quota à la demande de GPU ou de TPU est facturé.
  • Charges de travail à usage général nécessitant une exécution immédiate.

Optimiser les coûts et le provisionnement des charges de travail avec ComputeClasses

Vous pouvez utiliser ComputeClasses pour gérer dynamiquement et automatiser votre stratégie d'utilisation des accélérateurs en définissant une liste de configurations de remplacement basée sur la priorité. Lors des opérations de scaling, GKE tente de provisionner des nœuds en fonction de la hiérarchie des priorités que vous définissez.

La liste suivante décrit les options d'utilisation disponibles avec ComputeClasses et comment les configurer. Pour obtenir des manifestes YAML complets, consultez Exemples d'options d'utilisation avec ComputeClasses.

  • Réservations : vous pouvez définir le nom de la réservation dans le reservations champ de votre ComputeClass. Cela garantit que GKE tente d'abord d'utiliser votre capacité réservée avant de revenir en arrière.
  • Mode de provisionnement Démarrage flexible : activez la file d'attente flexible à l'aide du flexStart champ de votre ComputeClass, et configurez les durées de remplacement des nœuds de remplacement à l'aide des nodeRecycling champs.
  • VM Spot : demandez à GKE d'utiliser des VM Spot lors du provisionnement de nœuds pour cette règle de priorité en définissant le spot champ sur true.
  • Capacité à la demande combinée à une stratégie 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 location champs.

ComputeClasses ne sont pas compatibles avec les réservations futures ni les réservations futures jusqu'à 90 jours (en mode Agenda).

Exemples d'options d'utilisation avec ComputeClasses

Les sections suivantes fournissent des exemples de configuration pour ces stratégies.

Réservations avec configuration de remplacement

Cette configuration est plus adaptée aux charges de travail qui peuvent tolérer les interruptions qu'à celles qui dépendent de données persistantes ou qui doivent s'exécuter jusqu'à la fin.

Cette configuration établit une stratégie de remplacement résiliente en procédant comme suit :

  1. 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.
  2. Revenir au démarrage flexible : si la capacité de réservation est entièrement utilisée, GKE revient à des ressources à démarrage flexible à prix réduit et de courte durée.
  3. Revenir à la demande : en dernier recours, GKE provisionne des ressources standards à la demande.
  4. Revenir aux réservations : l'activation de la migration active demande à GKE de consolider et de migrer automatiquement les charges de travail vers les nœuds de réservation prioritaires dès que la capacité devient disponible. Cette migration peut être perturbatrice.

    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 de recyclage des nœuds

Cette configuration gère la capacité à prix réduit et de courte durée avec une disponibilité continue en procédant comme suit :

  1. Demander des VM à démarrage flexible : GKE demande des instances de VM à partir de la file d'attente à démarrage flexible (qui s'exécute sans interruption pendant sept jours maximum).
  2. Surveiller l'expiration du bail : GKE suit la durée restante des nœuds à démarrage flexible actifs.
  3. 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.
  4. Reprogrammer les charges de travail : les charges de travail migrent vers le nouveau nœud et reprennent l'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 stratégie d'allocation multizone

Cette configuration contourne les restrictions d'approvisionnement à zone unique en procédant comme suit :

  1. Définir les zones cibles : vous listez plusieurs zones de sauvegarde (telles que us-central1-a, us-central1-b et us-central1-c) dans les règles de priorité.
  2. Élargir les paramètres cibles : vous définissez la stratégie d'emplacement sur ANY. Ce paramètre demande à l'autoscaler de cluster de rechercher la capacité demandée dans toutes les zones spécifiées.
  3. Analyser la disponibilité zonale : lors des événements de scaling, GKE analyse les zones désignées.
  4. Provisionner dans les zones disponibles : GKE provisionne immédiatement les nœuds de charge de travail demandés dans la zone cible qui dispose de la capacité correspondante. Cette stratégie empêche 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
    

Étape suivante