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 |
|
|
|
|
| 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 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
reservationschamp 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
flexStartchamp de votre ComputeClass, et configurez les durées de remplacement des nœuds de remplacement à l'aide desnodeRecyclingchamps. - 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
spotchamp surtrue. - 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
locationchamps.
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 :
- 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.
- 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.
- Revenir à la demande : en dernier recours, GKE provisionne des ressources standards à la demande.
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 :
- 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).
- Surveiller l'expiration du bail : 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 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 :
- Définir les 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 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. - 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 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
- 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.