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 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 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 choisir parmi les options suivantes pour utiliser des accélérateurs sur GKE :
- À la demande : vous consommez des TPU ou des GPU sur GKE sans avoir à 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'option à la demande est la plus flexible. Toutefois, il n'est pas garanti que suffisamment de ressources à la demande seront disponibles pour répondre à votre demande.
- Réservations : vous réservez des ressources pour une période définie. Une réservation peut correspondre à l'un des éléments suivants :
- Réservations futures : vous réservez des ressources pour des périodes généralement plus longues à une date future spécifique. 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 concernant les TPU et les GPU.
- Réservations futures pour une durée maximale de 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 de disponibilité. 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 à ce 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 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 le provisionnement en cas de contraintes de 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 du système restreignent votre utilisation des ressources Google Cloud afin de garantir leur disponibilité 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.
Les comptesGoogle Cloud en essai sans frais sont soumis à des limites concernant les demandes d'augmentation de quota pour les ressources à forte valeur ajoutée, comme les GPU et les TPU. Pour accéder au quota d'accélérateur, passez à un compte payant.
Pour vérifier et demander un quota, accédez à la page "Quotas" dans 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 points suivants pour choisir la meilleure option de consommation pour 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 en fonction de la phase d'implémentation : 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 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 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 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 les ratios 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 les nœuds en fonction de la hiérarchie des priorités que vous avez définies.
La liste suivante décrit les options de consommation disponibles avec ComputeClasses et explique comment les configurer. Pour obtenir des exemples complets de fichiers manifeste YAML, 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 d'utiliser 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 de 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 d'abord les réservations : GKE tente de provisionner des nœuds à l'aide de votre réservation de capacité spécifique préachetée.
- Passer au démarrage flexible : si la capacité de réservation est entièrement utilisée, GKE passe à des ressources à démarrage flexible à durée limitée 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é à durée limitée et à prix réduit 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 à démarrage flexible (qui s'exécutent sans interruption pendant sept jours maximum).
- Surveiller l'expiration du bail : GKE suit la durée restante des nœuds à démarrage flexible actifs.
- Déclenchez 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 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
Configurer une règle d'allocation multizone
Cette configuration contourne les restrictions d'approvisionnement à zone unique en procédant comme suit :
- Définissez des zones cibles : listez plusieurs zones de sauvegarde (par exemple,
us-central1-a,us-central1-betus-central1-c) dans les règles de priorité. - Élargir les paramètres de ciblage : vous avez défini 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, 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/ML sur GKE