À propos des GPU dans Google Kubernetes Engine (GKE)


Cette page décrit les GPU dans Google Kubernetes Engine (GKE) pour vous aider à sélectionner la configuration GPU optimale pour vos charges de travail. Vous pouvez utiliser des GPU pour accélérer les tâches gourmandes en ressources, telles que le machine learning et le traitement des données. Les informations de cette page peuvent vous aider à effectuer les opérations suivantes:

  • Assurez-vous que les GPU sont disponibles si nécessaire.
  • Décidez d'utiliser des GPU en mode GKE Autopilot ou dans des clusters GKE en mode Standard.
  • Choisissez des fonctionnalités liées aux GPU pour utiliser efficacement votre capacité GPU.
  • Surveillez les métriques des nœuds GPU.
  • Améliorez la fiabilité des charges de travail du GPU en gérant les perturbations plus efficacement.

Cette page s'adresse aux administrateurs et opérateurs de plate-forme et aux ingénieurs en machine learning (ML) qui souhaitent s'assurer que l'infrastructure d'accélérateur est optimisée pour vos charges de travail.

Avant de lire cette page, assurez-vous de connaître les éléments suivants:

Sélection de GPU dans GKE

Dans GKE, la façon dont vous demandez du matériel GPU varie selon que vous utilisez les modes Autopilot ou Standard. Dans Autopilot, vous demandez du matériel GPU en spécifiant des ressources GPU dans vos charges de travail. Dans le mode GKE Standard, vous pouvez associer le matériel GPU aux nœuds de vos clusters, puis allouer des ressources GPU à des charges de travail conteneurisées s'exécutant sur ces nœuds. Pour savoir comment associer et utiliser des GPU dans vos charges de travail, consultez les pages Déployer des charges de travail GPU dans Autopilot ou Exécuter des GPU sur des pools de nœuds standards.

Le matériel GPU disponible dans GKE est un sous-ensemble des GPU Compute Engine pour les charges de travail Compute. Le matériel spécifique disponible dépend de la région ou de la zone Compute Engine de votre cluster. Pour plus d'informations sur la disponibilité, consultez la page Régions et zones des GPU.

GKE propose certaines fonctionnalités spécifiques aux GPU pour améliorer l'utilisation efficace des ressources GPU pour les charges de travail exécutées sur vos nœuds, y compris le partage de temps, les GPU multi-instances et les GPU multi-instances avec NVIDIA MPS.

Cette page vous aide à envisager les différentes options pour demander des GPU dans GKE, y compris:

Planifier le quota de GPU

Votre quota de GPU est le nombre maximal de GPU pouvant s'exécuter dans votre projetGoogle Cloud . Pour utiliser des GPU dans vos clusters GKE, votre projet doit posséder un quota suffisant de GPU. Consultez la page Quotas pour vous assurer que vous disposez de suffisamment de GPU dans votre projet.

Votre quota de GPU doit être au moins équivalent au nombre total de GPU que vous avez l'intention d'exécuter dans le cluster. Si vous activez l'autoscaling de cluster, vous devez demander un quota de GPU au moins équivalent au nombre maximal de nœuds du cluster, multiplié par le nombre de GPU par nœud.

Par exemple, si vous prévoyez d'utiliser trois nœuds avec deux GPU chacun, six GPU correspondent au quota de GPU sont requis pour votre projet.

Pour demander un quota de GPU supplémentaire, suivez les instructions pour demander un ajustement de quota, en utilisant gpus comme métrique.

Choisir la compatibilité GPU avec les clusters Autopilot ou Standard

Les GPU sont disponibles dans les clusters Autopilot et Standard.

Bonne pratique:

Utilisez des clusters Autopilot pour une expérience Kubernetes entièrement gérée. Dans Autopilot, GKE gère l'installation des pilotes, le scaling des nœuds, l'isolation des pods et le provisionnement des nœuds.

Le tableau suivant présente les différences entre la compatibilité Autopilot et Standard des GPU :

Description Autopilot Standard
Demander du matériel GPU Spécifiez des ressources GPU dans vos charges de travail. Associez le matériel GPU aux nœuds de vos clusters, puis allouez des ressources GPU à des charges de travail conteneurisées s'exécutant sur ces nœuds.
Disponibilité du matériel GPU
  • NVIDIA T4
  • NVIDIA L4
  • NVIDIA A100 40 Go
  • NVIDIA A100 80 Go
  • NVIDIA H100 80 Go
  • NVIDIA H200 141 Go
  • NVIDIA B200
  • NVIDIA GB200
Tous les types de GPU compatibles avec Compute Engine
Sélectionner un GPU Vous demandez une quantité et un type de GPU dans la spécification de votre charge de travail. Par défaut, Autopilot installe le pilote par défaut pour cette version de GKE et gère vos nœuds. Pour sélectionner une version de pilote spécifique dans Autopilot, consultez la section Sélection des pilotes NVIDIA pour les pods de GPU Autopilot. Suivez les étapes décrites sur la page Exécuter des GPU sur des pools de nœuds Standard :
  1. Créez un pool de nœuds avec le type de GPU spécifique et le type de machine Compute Engine correspondant, puis choisissez un pilote à installer.
  2. Installez manuellement les pilotes de GPU sur les nœuds si vous n'avez pas utilisé l'installation automatique.
  3. Demandez des quantités de GPU dans la spécification de pod.
Améliorer l'utilisation du GPU
Sécurité GPU avec GKE Sandbox
Tarifs Tarifs des pods GPU Autopilot Tarifs des GPU Compute Engine

Pour choisir le mode de fonctionnement GKE le mieux adapté à vos charges de travail, consultez la section Choisir un mode de fonctionnement GKE.

Gérer la pile de GPU via GKE ou l'opérateur GPU NVIDIA sur GKE

Par défaut, GKE gère l'ensemble du cycle de vie des nœuds GPU, y compris l'installation automatique des pilotes de GPU, la surveillance des charges de travail GPU sur GKE avec le gestionnaire de GPU de centre de données (DCGM) NVIDIA et les stratégies de partage de GPU.

Bonne pratique:

Utilisez GKE pour gérer vos nœuds GPU, car GKE gère entièrement le cycle de vie des nœuds GPU.

Commencez à utiliser GKE pour la gestion des nœuds GPU en choisissant l'une des options suivantes :

L'opérateur GPU NVIDIA peut être utilisé à la place de la compatibilité GPU entièrement gérée sur GKE, à la fois pour les images de nœuds COS (Container-Optimized OS) et Ubuntu. Sélectionnez cette option si vous cherchez à définir une expérience cohérente entre plusieurs fournisseurs de services cloud, si vous utilisez déjà l'opérateur GPU NVIDIA ou si vous utilisez des logiciels qui dépendent de l'opérateur GPU NVIDIA. Pour en savoir plus, consultez la section Gérer la pile de GPU avec l'opérateur GPU NVIDIA.

Pour sélectionner la meilleure option pour votre cas d'utilisation, consultez le tableau suivant qui compare les deux méthodes de gestion des nœuds GPU sur GKE.

Description Utiliser GKE pour gérer des nœuds GPU Utiliser l'opérateur GPU NVIDIA sur GKE
Gestion du cycle de vie des nœuds GPU (installation, mise à niveau) Entièrement géré par GKE. Gérées par l'utilisateur.
Installation du pilote Installation automatique et manuelle des pilotes de GPU. Installation manuelle des pilotes de GPU.
Sélecteurs de nœuds cloud.google.com/gke-gpu=true nvidia.com/gpu=true
Stratégies de partage de GPU
  • Service multiprocessus: non compatible.
Vérification de l'état des nœuds GPU
  • Déclenchez la réparation de nœud dans 15 minutes si le nombre de GPU allouables n'est pas égal à la capacité et que la réparation automatique est activée.
  • Surveillez tous les codes d'erreur par défaut.
  • Déclenchez la réparation de nœud dans 15 minutes si le nombre de GPU allouables n'est pas égal à la capacité et que la réparation automatique est activée.
Métriques et observabilité
  • Lorsque les métriques système sont activées, les métriques GPU suivantes sont disponibles dans Cloud Monitoring: cycle de service, utilisation de la mémoire et capacité de la mémoire.
  • DCGM autogéré fourni par l'opérateur GPU.
  • Même lorsque les métriques système du GPU GKE sont activées, les métriques système liées au GPU ne sont pas collectées, y compris le cycle de service, l'utilisation de la mémoire et la capacité de la mémoire.

Optimiser l'utilisation des ressources à l'aide des fonctionnalités GPU dans GKE

Par défaut, Kubernetes n'accepte que l'attribution de GPU sous forme d'unités entières aux conteneurs, mais GKE fournit des fonctionnalités supplémentaires que vous pouvez utiliser pour optimiser l'utilisation des ressources de vos charges de travail GPU.

Les fonctionnalités suivantes sont disponibles dans GKE pour réduire la quantité de ressources GPU sous-utilisées :

Fonctionnalités des GPU
GPU multi-instances

Disponible sur : Autopilot et Standard

Divisez un seul GPU en sept instances maximum séparées par du matériel, pouvant être attribuées en tant que GPU individuels aux conteneurs d'un nœud. Chaque conteneur attribué obtient les ressources disponibles pour cette instance.

GPU de partage de temps

Disponible sur : Autopilot et Standard

Présenter un seul GPU en tant qu'unités multiples dans plusieurs conteneurs sur un nœud. Le contexte du pilote de GPU bascule et alloue les ressources GPU complètes à chaque conteneur attribué en fonction des besoins au fil du temps.

Service multi-processus (MPS) NVIDIA

Disponibilité : Standard

Partagez un seul GPU NVIDIA physique sur plusieurs conteneurs. NVIDIA MPS est une autre implémentation de l'API CUDA compatible binaire, conçue pour permettre aux applications CUDA coopératives multiprocessus de s'exécuter simultanément sur un seul appareil GPU de manière transparente.

Accéder aux bibliothèques NVIDIA CUDA-X pour les applications CUDA

CUDA est la plate-forme informatique parallèle et le modèle de programmation NVIDIA pour les GPU. Pour utiliser des applications CUDA, l'image que vous utilisez doit disposer des bibliothèques. Pour ajouter les bibliothèques NVIDIA CUDA-X, vous pouvez créer et utiliser votre propre image en incluant les valeurs suivantes dans la variable d'environnement LD_LIBRARY_PATH de la spécification de votre conteneur :

  • /usr/local/cuda-CUDA_VERSION/lib64 : emplacement des bibliothèques NVIDIA CUDA-X sur le nœud.

    Remplacez CUDA_VERSION par la version d'image CUDA-X que vous avez utilisée. Certaines versions contiennent également des utilitaires de débogage dans /usr/local/nvidia/bin. Pour en savoir plus, consultez la page image NVIDIA CUDA sur DockerHub.

    Pour vérifier la version minimale du pilote de GPU requise pour votre version de CUDA, consultez les versions de pilote compatibles avec CUDA Toolkit.

  • /usr/local/nvidia/lib64 : emplacement des pilotes d'appareils NVIDIA.
Assurez-vous que la version du correctif GKE exécutée sur vos nœuds inclut une version du pilote de GPU compatible avec la version CUDA choisie. Pour obtenir la liste des versions de pilotes de GPU associées à la version de GKE, consultez la page "Container-Optimized OS" correspondante indiquée dans le tableau des versions actuelles de GKE.

Dans les clusters Autopilot, GKE gère la sélection et l'installation des versions de pilotes.

Surveiller les performances des charges de travail de vos nœuds GPU

Si les métriques système sont activées dans votre cluster GKE, les métriques suivantes sont disponibles dans Cloud Monitoring pour surveiller les performances des charges de travail des GPU :

  • Cycle d'utilisation (container/accelerator/duty_cycle) : durée exprimée en pourcentage de la dernière période d'échantillonnage (10 secondes) pendant laquelle l'accélérateur a été en mode de traitement actif. Entre 1 et 100.
  • Utilisation de la mémoire (container/accelerator/memory_used) : quantité de mémoire d'accélérateur allouée, en octets.
  • Capacité de mémoire (container/accelerator/memory_total) : mémoire totale de l'accélérateur, en octets.

Vous pouvez utiliser des tableaux de bord prédéfinis pour surveiller vos clusters avec des nœuds GPU. Pour en savoir plus, consultez la page Afficher les métriques d'observabilité. Pour obtenir des informations générales sur la surveillance de vos clusters et de leurs ressources, consultez la page Observabilité pour GKE.

Afficher les métriques d'utilisation des charges de travail

Pour afficher les métriques d'utilisation des GPU de vos charges de travail, vous devez accéder au tableau de bord Charges de travail dans la console Google Cloud .

Pour afficher l'utilisation des GPU des charges de travail, procédez comme suit :

  1. Accédez à la page Charges de travail dans la console Google Cloud .

    Accéder à la page Charges de travail
  2. Sélectionner une charge de travail

Le tableau de bord "Charges de travail" affiche les graphiques sur l'utilisation et la capacité de la mémoire des GPU, ainsi que leur cycle de travail.

Afficher les métriques du gestionnaire de GPU NVIDIA Data Center (DCGM)

Vous pouvez collecter et visualiser des métriques NVIDIA DCGM à l'aide de Google Cloud Managed Service pour Prometheus. Pour les clusters Autopilot, GKE installe les pilotes. Pour les clusters standards, vous devez installer les pilotes NVIDIA.

Pour savoir comment déployer le package DCGM géré par GKE, consultez Collecter et afficher les métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA.

Gérer les perturbations dues à la maintenance des nœuds

Les nœuds GKE qui hébergent les GPU sont soumis à des événements de maintenance ou à d'autres perturbations susceptibles d'entraîner l'arrêt du nœud. Dans les clusters GKE dont le plan de contrôle exécute les versions 1.29.1-gke.1425000 et ultérieures, vous pouvez réduire les perturbations sur les charges de travail en configurant GKE pour qu'il arrête correctement vos charges de travail.

Pour comprendre, configurer et surveiller les événements d'interruption pouvant se produire sur les nœuds GKE exécutant des charges de travail d'IA/ML, consultez la section Gérer les interruptions des nœuds GKE pour les GPU et les TPU.

Étape suivante