Cette page décrit les GPU dans Google Kubernetes Engine (GKE) pour vous aider à sélectionner la configuration de GPU optimale pour vos charges de travail. Si vous souhaitez déployer des charges de travail GPU qui utilisent Slurm, consultez plutôt Créer un cluster Slurm optimisé pour l'IA.
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 sur cette page peuvent vous aider à effectuer les opérations suivantes :
- Assurez-vous que les GPU sont disponibles lorsque vous en avez besoin.
- Décidez d'utiliser des GPU dans des clusters en mode GKE Autopilot ou GKE Standard.
- Choisissez des fonctionnalités liées aux GPU pour utiliser efficacement votre capacité de GPU.
- Surveillez les métriques des nœuds GPU.
- Améliorez la fiabilité des charges de travail GPU en gérant plus efficacement les interruptions.
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érateurs est optimisée pour leurs 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.
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 :
- Choisir votre quota de GPU, c'est-à-dire le nombre maximal de GPU pouvant s'exécuter dans votre projet
- Choisir entre les modes Autopilot et Standard
- Gérer la pile de GPU via GKE ou l'opérateur GPU NVIDIA sur GKE
- Choisir des fonctionnalités pour réduire la quantité de ressources GPU sous-utilisées
- Accéder aux bibliothèques NVIDIA CUDA-X pour les applications CUDA
- Surveiller les métriques des nœuds GPU
- Gérer les perturbations dues à la maintenance des nœuds
- Sécuriser les charges de travail GPU avec GKE Sandbox
Modèles de GPU disponibles
Le matériel GPU disponible dans GKE est un sous-ensemble des modèles de GPU disponibles sur Compute Engine. Le matériel spécifique disponible dépend de la région ou de la zone Compute Engine de votre cluster. Pour en savoir plus sur la disponibilité spécifique, consultez Régions et zones des GPU.
Pour en savoir plus sur les tarifs des GPU, consultez les SKUGoogle Cloud et la page Tarifs des GPU.
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.
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 les ressources GPU dans vos charges de travail. | Associez le matériel GPU aux nœuds de vos clusters, puis allouez des ressources GPU aux charges de travail conteneurisées s'exécutant sur ces nœuds. |
Disponibilité du matériel GPU |
|
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 :
|
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 GPU, la surveillance des charges de travail GPU sur GKE avec NVIDIA Data Center GPU Manager (DCGM) et les stratégies de partage de GPU.
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 :
- Déployer des charges de travail GPU dans Autopilot
- Exécuter des GPU dans des pools de nœuds en mode Standard
- Déployer des clusters avec des GPU NVIDIA B200 ou NVIDIA H200 de 141 Go
L'opérateur GPU NVIDIA peut être utilisé comme alternative à la compatibilité GPU entièrement gérée sur GKE, à la fois sur les images de nœuds Container-Optimized OS (COS) 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 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 les 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é 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 |
|
|
Vérification de l'état des nœuds GPU |
|
|
Métriques et observabilité |
|
|
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. Toutefois, 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. |
NVIDIA MPS |
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.
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.
Ces métriques s'appliquent au niveau du conteneur (container/accelerator
) et ne sont pas collectées pour les conteneurs programmés sur un GPU utilisant un GPU à temps partagé ou NVIDIA MPS.
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 :
Accédez à la page Charges de travail dans la console Google Cloud .
Accéder à la page Charges de travail- 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.