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:
- Choisir votre quota de GPU, 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
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 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 |
|
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 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.
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
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 |
|
|
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, 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.
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 :
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.