Cette page vous explique comment utiliser le plug-in NVIDIA Collective Communication Library (NCCL) Fast Socket pour exécuter des charges de travail plus efficaces sur vos clusters Google Kubernetes Engine (GKE).
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande
gcloud components update
.
Limites
- Les limites Compute Engine s'appliquent.
- Les limites gVNIC s'appliquent.
- NCCL Fast Socket n'est compatible qu'avec les pools de nœuds pour lesquels les accélérateurs matériels sont activés.
Conditions requises
GKE Autopilot :
- Les clusters GKE Autopilot doivent exécuter la version 1.30.2-gke.1023000 ou ultérieure.
Pour en savoir plus, consultez la section Créer un cluster Autopilot.
GKE Standard :
- Pour utiliser NCCL Fast Socket, vous devez activer gVNIC sur vos pools de nœuds.
- Les nœuds GKE doivent utiliser une image de nœud Container-Optimized OS.
- Vos clusters doivent exécuter GKE version 1.25.2-gke.1700 ou ultérieure.
Pour en savoir plus, consultez la section Créer un cluster régional.
Activer Fast Socket NCCL dans les clusters standards
Cette section explique comment activer le plug-in NCCL Fast Socket dans les pools de nœuds GKE Standard. Si vous utilisez des clusters GKE Autopilot, GKE active automatiquement le plug-in lorsque vous demandez Fast Socket NCCL dans vos charges de travail. Pour obtenir des instructions, consultez la section Fast Socket NCCL dans Autopilot.
Pour les clusters standards, créez un pool de nœuds qui utilise le plug-in NCCL Fast Socket. Vous pouvez également mettre à jour un pool de nœuds existant à l'aide de la commande gcloud container node-pools update
.
gcloud container node-pools create NODEPOOL_NAME \
--accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
--machine-type=MACHINE_TYPE \
--cluster=CLUSTER_NAME \
--enable-fast-socket \
--enable-gvnic
Remplacez les éléments suivants :
NODEPOOL_NAME
: nom du nouveau pool de nœuds.CLUSTER_NAME
: nom du cluster.ACCELERATOR_TYPE
: type d'accélérateur GPU que vous utilisez. Exemple :nvidia-tesla-t4
ACCELERATOR_COUNT
: nombre de GPU par nœud.MACHINE_TYPE
: type de machine que vous souhaitez utiliser. NCCL Fast Socket n'est pas compatible avec les types de machines à mémoire optimisée.
Installer des pilotes d'appareils GPU NVIDIA
Dans Autopilot, les pilotes d'appareils GPU sont installés automatiquement.
Pour les clusters standards, suivez les instructions de la section Installer des pilotes d'appareils GPU NVIDIA pour installer les pilotes d'appareils NVIDIA requis sur vos nœuds.
NCCL Fast Socket dans Autopilot
Dans les clusters Autopilot, vous demandez Fast Socket NCCL dans vos charges de travail à l'aide du sélecteur de nœud cloud.google.com/gke-nccl-fastsocket
.
Lorsque vous demandez NCCL Fast Socket dans une charge de travail, GKE active gVNIC et NCCL Fast Socket sur les nœuds que GKE provisionne pour la charge de travail.
Vous pouvez utiliser NCCL Fast Socket avec n'importe quel type de GPU compatible avec Autopilot.
Le pod suivant demande NCCL Fast Socket:
apiVersion: v1
kind: Pod
metadata:
name: my-gpu-pod
spec:
nodeSelector:
cloud.google.com/gke-accelerator: GPU_TYPE
cloud.google.com/gke-nccl-fastsocket: "true"
containers:
- name: my-gpu-container
image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
command: ["/bin/bash", "-c", "--"]
args: ["while true; do sleep 600; done;"]
resources:
limits:
nvidia.com/gpu: GPU_QUANTITY
Remplacez les éléments suivants :
GPU_TYPE
: type de matériel GPU. Les valeurs autorisées sont les suivantes :nvidia-h100-mega-80gb
: NVIDIA H100 Mega (80 Go)nvidia-h100-80gb
: NVIDIA H100 (80 Go)nvidia-a100-80gb
: NVIDIA A100 (80 Go)nvidia-tesla-a100
: NVIDIA A100 (40 Go)nvidia-l4
: NVIDIA L4nvidia-tesla-t4
: NVIDIA T4
GPU_QUANTITY
: nombre de GPU à allouer au conteneur.
Vérifiez que NCCL Fast Socket est activé.
Pour vérifier que NCCL Fast Socket est activée, consultez les pods kube-system:
kubectl get pods -n kube-system
Le résultat ressemble à ce qui suit :
NAME READY STATUS RESTARTS AGE
nccl-fastsocket-installer-qvfdw 2/2 Running 0 10m
nccl-fastsocket-installer-rtjs4 2/2 Running 0 10m
nccl-fastsocket-installer-tm294 2/2 Running 0 10m
Dans ce résultat, le nombre de pods doit être égal au nombre de nœuds du pool de nœuds.
Désactiver NCCL Fast Socket
Dans les clusters GKE Autopilot, le plug-in Fast Socket NCCL est désactivé par défaut. Pour désactiver le plug-in sur une charge de travail existante, redéployez-la sans le sélecteur de nœud NCCL Fast Socket.
Pour désactiver NCCL Fast Socket pour un pool de nœuds dans les clusters standards, exécutez la commande suivante:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
Le plug-in est toujours installé sur les nœuds existants. Vous devez redimensionner manuellement le pool de nœuds pour migrer les charges de travail vers de nouveaux nœuds.
Dépannage
Pour résoudre les problèmes liés à la gVNIC, consultez la section Dépannage de la carte d'interface réseau virtuelle Google.
Étapes suivantes
- Utilisez la journalisation des règles de réseau pour enregistrer les connexions aux pods autorisées ou refusées par les règles de réseau de votre cluster.