Ce document explique comment créer des clusters Google Kubernetes Engine (GKE) optimisés pour l'IA qui utilisent les séries de machines optimisées pour les accélérateurs G2 (NVIDIA L4) ou G4 (NVIDIA RTX PRO 6000) afin de prendre en charge vos charges de travail d'intelligence artificielle (IA) et de machine learning (ML). G2 et G4 sont des séries de machines GPU à usage général, qui fournissent des ressources de calcul indépendantes conçues pour les tâches d'IA courantes, telles que les applications d'inférence et nécessitant beaucoup de ressources graphiques de petite à moyenne envergure. En plus des types de machines à GPU unique et à GPU multiples, la série de machines G4 est compatible avec les GPU virtuels (vGPU) sur les types de machines qui ont moins d'un GPU :
g4-standard-6(un huitième de GPU)g4-standard-12(un quart de GPU)g4-standard-24(un demi-GPU)
GKE fournit une plate-forme unique pour exécuter un ensemble varié de charges de travail pour votre organisation, ce qui réduit la charge opérationnelle liée à la gestion de plusieurs plates-formes.
Pour créer un cluster GKE optimisé pour l'IA avec G2 ou G4, procédez comme suit :
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Pour utiliser Google Cloud CLI pour cette tâche, installez puis initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer et gérer un cluster GKE, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
- Administrateur Kubernetes Engine (
roles/container.admin) - Administrateur de Compute (
roles/compute.admin)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Choisir une option de consommation et obtenir de la capacité
Sélectionnez une option de consommation. Faites votre choix en fonction de la façon dont vous souhaitez obtenir et utiliser les ressources GPU. Pour en savoir plus, consultez Choisir une option de consommation.
Pour GKE, tenez compte des informations supplémentaires suivantes lorsque vous choisissez une option de consommation :
- Pour en savoir plus sur le démarrage flexible (aperçu) et GKE, consultez À propos de la disponibilité des GPU avec le démarrage flexible.
- Le démarrage flexible utilise un emplacement compact au mieux. Pour examiner votre topologie, consultez Afficher la topologie physique des nœuds de votre cluster GKE.
- Vous ne pouvez obtenir des informations sur la topologie que lorsque vous utilisez des VM Spot si vous configurez un emplacement compact.
Obtenez de la capacité. Découvrez comment obtenir de la capacité pour votre option de consommation.
Conditions requises
Pour créer un cluster GKE optimisé pour l'IA qui utilise G2 ou G4, assurez-vous de répondre aux exigences suivantes :
- Version GKE : les machines G4 (NVIDIA RTX PRO 6000) nécessitent les versions GKE minimales suivantes :
- Mode standard :
- Types de machines avec un ou plusieurs GPU :
1.34.0-gke.1662000ou version ultérieure - Types de machines avec moins d'un GPU (
g4-standard-6,g4-standard-12etg4-standard-24) :- 1.35 :
1.35.8-gke.1518000ou version ultérieure - Version 1.36 ou ultérieure :
1.36.4-gke.1082000ou version ultérieure
- 1.35 :
- Types de machines avec un ou plusieurs GPU :
- Mode Autopilot :
- Types de machines avec un ou plusieurs GPU :
1.34.1-gke.1829001ou version ultérieure - Types de machines avec moins d'un GPU (
g4-standard-6,g4-standard-12etg4-standard-24) :- 1.35 :
1.35.8-gke.1518000ou version ultérieure - Version 1.36 ou ultérieure :
1.36.4-gke.1082000ou version ultérieure
- 1.35 :
- Types de machines avec un ou plusieurs GPU :
- Mode standard :
- Pilotes de GPU :
- Les nœuds G2 (NVIDIA L4) doivent utiliser le pilote NVIDIA version
535ou ultérieure. - Les nœuds G4 (NVIDIA RTX PRO 6000) doivent utiliser le pilote NVIDIA version
580ou ultérieure.
- Les nœuds G2 (NVIDIA L4) doivent utiliser le pilote NVIDIA version
Limites
Les limites suivantes s'appliquent aux séries de machines GPU généraux G2 et G4 :
- Disques SSD locaux : les types de machines G2 et G4 n'incluent pas de disques SSD locaux par défaut. Vous devez les joindre manuellement si nécessaire. Le type de machine
g4-standard-6(un huitième de GPU) n'est pas compatible avec les SSD locaux. - NCCL Fast Socket : vous ne pouvez pas utiliser NCCL Fast Socket avec les machines G2 ou G4 sur GKE. Bien que les machines G2 et G4 soient compatibles avec la communication multinœuds, elles utilisent la mise en réseau VPC standard. Pour l'entraînement distribué à grande échelle qui nécessite un débit réseau maximal, nous vous recommandons d'utiliser la série de machines GPU en cluster, comme A3 High ou A3 Mega (qui utilisent GPUDirect-TCPX) ou A3 Ultra et A4 (qui utilisent GPUDirect-RDMA).
- Types de machines G4 avec moins d'un GPU : pour
g4-standard-6,g4-standard-12etg4-standard-24:- Vous ne pouvez pas utiliser d'images de nœuds Ubuntu.
- Vous ne pouvez pas utiliser de GPU multi-instances, de NVIDIA MPS ni de GPU à temps partagé.
Créer l'environnement GKE
Vous pouvez créer un cluster en mode Autopilot ou Standard.
Autopilot
Pour créer un cluster Autopilot, exécutez la commande suivante :
gcloud container clusters create-auto CLUSTER_NAME \
--region=REGION
Remplacez les éléments suivants :
CLUSTER_NAME: nom du clusterREGION: région de votre cluster.
Standard
Créez un cluster Standard et un pool de nœuds GPU :
Pour créer un cluster Standard, exécutez la commande suivante :
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-aliasRemplacez les éléments suivants :
CLUSTER_NAME: nom du clusterREGION: région de votre cluster.
Créez le pool de nœuds. Après avoir créé votre cluster, vous pouvez ajouter un pool de nœuds avec G2 ou G4. Pour les charges de travail multinœuds utilisant G2 (L4) ou G4 (RTX PRO 6000), nous vous recommandons d'utiliser une stratégie d'emplacement compacte afin de minimiser la latence réseau entre les nœuds.
Pour créer un pool de nœuds, utilisez la commande suivante :
G2 (NVIDIA L4)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTG4 (NVIDIA RTX PRO 6000)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \ --disk-type=hyperdisk-balanced \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTPoste de travail virtuel (vWS) G4
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \ --disk-type=hyperdisk-balanced \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTRemplacez les éléments suivants :
NODE_POOL_NAME: nom de votre pool de nœuds.CLUSTER_NAME: nom du clusterREGION: région de votre cluster.ZONE: une ou plusieurs zones de votre région dans lesquelles les GPU demandés sont disponibles, par exempleus-central1-a. Ce champ est obligatoire lorsque vous utilisez un emplacement compact.MACHINE_TYPE: type de machine pour vos nœuds (par exemple,g2-standard-4pour les machines G2,g4-standard-48pour une machine G4 à un seul GPU, oug4-standard-6,g4-standard-12oug4-standard-24pour les types de machines G4 qui ont moins d'un GPU (avec le type d'accélérateurnvidia-rtx-pro-6000).AMOUNT: nombre de GPU à associer à chaque nœud. Si vous utilisez un type de machine G4 avec moins d'un GPU (g4-standard-6,g4-standard-12oug4-standard-24) oug4-standard-48(un GPU), vous devez définirAMOUNTsur1.LOCAL_SSD_COUNT: nombre de volumes SSD locaux à provisionner sur chaque nœud. Omettez l'indicateur--local-ssd-countsi vous utilisez le type de machineg4-standard-6, carg4-standard-6n'est pas compatible avec les SSD locaux.
Vous connecter à votre cluster
Connectez-vous à votre cluster pour pouvoir exécuter les commandes kubectl dans les sections suivantes :
gcloud container clusters get-credentials CLUSTER_NAME \
--region=REGION
Remplacez les éléments suivants :
CLUSTER_NAME: nom du clusterREGION: région de votre cluster.
Pour en savoir plus, consultez Installer kubectl et configurer l'accès au cluster.
Configurer vos fichiers manifestes de pod (Autopilot uniquement)
Si vous avez créé un cluster Autopilot, vous devez sélectionner les GPU appropriés dans vos fichiers manifestes de pod pour que GKE provisionne le matériel.
Spécifiez le type de GPU choisi et la réservation spécifique à l'aide de sélecteurs de nœuds :
spec: nodeSelector: cloud.google.com/gke-accelerator: ACCELERATOR cloud.google.com/gke-gpu-driver-version: latest # Optional: Include if using reserved capacity cloud.google.com/reservation-name: RESERVATION_NAME cloud.google.com/reservation-affinity: "specific"Remplacez les éléments suivants :
ACCELERATOR: l'accélérateur que vous avez réservé. Vous devez utilisernvidia-l4(pour G2),nvidia-rtx-pro-6000(pour G4) ounvidia-rtx-pro-6000-vws(pour G4 avec poste de travail virtuel).RESERVATION_NAME: nom de la réservation de capacité Compute Engine. Pour consommer des réservations partagées, ou des blocs et sous-blocs spécifiques de réservations, consultez les sections correspondantes dans Consommer des ressources zonales réservées.
Ajoutez les ressources suivantes au conteneur qui demande des GPU :
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTRemplacez
AMOUNTpar le nombre de GPU que le conteneur doit utiliser. Pour demander un type de machine G4 avec moins d'un GPU (g4-standard-6,g4-standard-12oug4-standard-24) dans un cluster Autopilot, vous devez utiliser unComputeClasspersonnalisé qui spécifie le type de machine et définirnvidia.com/gpusur1. Pour obtenir des instructions, consultez Demander des types de machines G4 avec moins d'un GPU.