À propos des GPU dans GKE


Cette page décrit les GPU dans Google Kubernetes Engine (GKE), y compris les cas d'utilisation, les fonctionnalités et les types de GPU compatibles, ainsi que les différences entre les modes Autopilot et Standard. 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.

Disponibilité des GPU dans GKE

Dans GKE Autopilot et 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. Ces accélérateurs vous permettent d'effectuer des tâches exigeantes en ressources, telles que les suivantes :

  • Inférence et entraînement du machine learning (ML)
  • Traitement des données à grande échelle

Le matériel GPU disponible dans GKE est un sous-ensemble des GPU Compute Engine pour les charges de travail Compute. GKE propose certaines fonctionnalités spécifiques aux GPU, telles que le temps partagé et les GPU multi-instances, qui peuvent améliorer l'efficacité avec laquelle vos charges de travail utilisent les ressources GPU de vos nœuds.

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.

Quota de GPU

Votre quota de GPU est le nombre maximal de GPU pouvant s'exécuter dans votre projet Google Cloud. Pour utiliser des GPU dans vos clusters GKE, votre projet doit posséder un quota suffisant de GPU.

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 créez un cluster de trois nœuds exécutant chacun deux GPU, votre projet nécessite un quota minimal de six GPU.

Pour demander un quota de GPU supplémentaire, suivez les instructions de la section Demander une augmentation de limite de quota, en utilisant gpus comme métrique.

Compatibilité des GPU avec Autopilot et Standard

Les GPU sont disponibles dans les clusters Autopilot et Standard. Le tableau suivant décrit les différences entre la compatibilité Autopilot et Standard des GPU :

Description Autopilot Standard
Disponibilité du matériel GPU
  • NVIDIA T4
  • NVIDIA A100
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 pod. Autopilot installe des pilotes stables et gère les nœuds.
  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.

Pour obtenir des instructions, reportez-vous à la page Exécuter des GPU sur des pools de nœuds standards.

Fonctionnalités GPU supplémentaires Non disponible
Tarifs Tarifs des pods GPU Autopilot Tarifs des GPU Compute Engine

Dans Autopilot, GKE gère l'installation des pilotes, le scaling des nœuds, l'isolation des pods et le provisionnement des nœuds. Nous vous recommandons de choisir un mode de cluster pour vos GPU en fonction de la flexibilité et du niveau de contrôle que vous souhaitez sur vos nœuds, comme suit :

  • Si vous souhaitez vous concentrer sur le déploiement de vos charges de travail basées sur des GPU sans avoir à gérer les nœuds, et si les types de GPU disponibles répondent à vos besoins, utilisez Autopilot.
  • Si vous préférez gérer vous-même vos nœuds, vos versions de pilotes, votre scaling, votre isolation et vos machines sous-jacentes, ou si vous avez besoin de fonctionnalités telles que le partage de temps et les GPU multi-instances, utilisez la version standard.

Fonctionnalités des GPU dans GKE

GKE fournit des fonctionnalités supplémentaires que vous pouvez utiliser pour optimiser l'utilisation des ressources de vos charges de travail GPU, afin de ne pas gaspiller des ressources GPU sur vos nœuds. Par défaut, Kubernetes n'accepte que l'attribution de GPU sous forme d'unités entières aux conteneurs, même si celui-ci n'a besoin que d'une fraction du GPU disponible ou si le conteneur n'utilise pas toujours les ressources.

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

Fonctionnalités des GPU
GPU de partage de temps

Disponibilité : 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.

GPU multi-instances

Disponibilité : 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.

À propos des bibliothèques NVIDIA CUDA-X

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, utilisez l'une des méthodes suivantes :

  • Recommandé : Utilisez une image sur laquelle les bibliothèques NVIDIA CUDA-X sont préinstallées. Vous pouvez par exemple utiliser des Conteneurs de deep learning. Ces conteneurs préinstallent les principaux frameworks de science des données, les bibliothèques NVIDIA CUDA-X et les outils. L'image NVIDIA CUDA ne contient que les bibliothèques NVIDIA CUDA-X.
  • Créez et utilisez votre propre image. Dans ce cas, incluez les valeurs suivantes dans la variable d'environnement LD_LIBRARY_PATH dans la spécification de votre conteneur :
    1. /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.
    2. /usr/local/nvidia/lib64 : emplacement des pilotes d'appareils NVIDIA.

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. 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 des 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.

Étapes suivantes