Questa pagina mostra come utilizzare il plug-in Fast Socket NVIDIA Collective Communication Library (NCCL) per eseguire carichi di lavoro più efficienti sui cluster Google Kubernetes Engine (GKE).
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività, installa e quindi initialize gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Limitazioni
- Si applicano limitazioni di Compute Engine.
- Si applicano limitazioni gVNIC.
- Fast Socket NCCL è supportato solo sui pool di nodi in cui sono abilitati acceleratori hardware.
Requisiti
GKE Autopilot:
- I cluster GKE Autopilot devono essere in esecuzione 1.30.2-gke.1023000 o versioni successive.
Per maggiori dettagli, consulta Creazione di un cluster Autopilot.
GKE Standard:
- Per utilizzare NCCL Fast Socket, gVNIC deve essere abilitato nei pool di nodi.
- I nodi GKE devono utilizzare un'immagine nodo di Container-Optimized OS.
- Nei cluster deve essere in esecuzione GKE versione 1.25.2-gke.1700 o successiva.
Per maggiori dettagli, consulta Creazione di un cluster a livello di regione.
Abilita Fast Socket NCCL nei cluster Standard
Questa sezione mostra come abilitare il plug-in NCCL Fast Socket nei pool di nodi di GKE Standard. Se utilizzi cluster GKE Autopilot, GKE abilita automaticamente il plug-in quando richiedi NCCL Fast Socket nei carichi di lavoro. Per le istruzioni, consulta la sezione Presa rapida NCCL in Autopilot.
Per i cluster standard, crea un pool di nodi che utilizza il plug-in Fast Socket NCCL. Puoi anche
aggiornare un pool di nodi esistente utilizzando
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
Sostituisci quanto segue:
NODEPOOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.ACCELERATOR_TYPE
: il tipo di acceleratore GPU che utilizzi. Ad esempio:nvidia-tesla-t4
.ACCELERATOR_COUNT
: il numero di GPU per nodo.MACHINE_TYPE
: tipo di macchina che vuoi utilizzare. NCCL Fast Socket non è supportato sui tipi di macchine ottimizzate per la memoria.
Installa i driver di dispositivo GPU NVIDIA
In Autopilot, i driver di dispositivi GPU vengono installati automaticamente.
Per i cluster Standard, segui le istruzioni in Installazione dei driver di dispositivo GPU NVIDIA per installare i driver di dispositivo NVIDIA richiesti sui tuoi nodi.
Presa rapida NCCL in Autopilot
Nei cluster Autopilot, richiedi il socket veloce NCCL nei tuoi carichi di lavoro utilizzando il selettore di nodi cloud.google.com/gke-nccl-fastsocket
.
Quando richiedi NCCL Fast Socket in un carico di lavoro, GKE abilita gVNIC e NCCL Fast Socket sui nodi di cui GKE esegue il provisioning per il carico di lavoro.
Puoi utilizzare Fast Socket NCCL con qualsiasi tipo di GPU supportato da Autopilot.
Il seguente pod richiede 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
Sostituisci quanto segue:
GPU_TYPE
: il tipo di hardware GPU. I valori consentiti sono i seguenti:nvidia-h100-80gb
: NVIDIA H100 (80 GB) (disponibile solo con la classe di calcolo Accelerator)nvidia-a100-80gb
: NVIDIA A100 (80GB)nvidia-tesla-a100
: NVIDIA A100 (40GB)nvidia-l4
: NVIDIA L4nvidia-tesla-t4
: NVIDIA T4
GPU_QUANTITY
: il numero di GPU da allocare al container.
Verifica che NCCL Fast Socket sia abilitata
Per verificare che NCCL Fast Socket sia abilitato, visualizza i pod kube-system:
kubectl get pods -n kube-system
L'output è simile al seguente:
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
In questo output, il numero di pod deve essere uguale al numero di nodi nel pool di nodi.
Disattiva Fast Socket NCCL
Nei cluster GKE Autopilot, il plug-in NCCL Fast Socket è disabilitato per impostazione predefinita. Per disabilitare il plug-in su un carico di lavoro esistente, esegui nuovamente il deployment del carico di lavoro senza il selettore di nodi Fast Socket NCCL.
Per disabilitare NCCL Fast Socket per un pool di nodi nei cluster standard, esegui questo comando:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
Sui nodi esistenti, il plug-in è ancora installato. Devi ridimensionare manualmente il pool di nodi per eseguire la migrazione dei carichi di lavoro verso nuovi nodi.
Risoluzione dei problemi
Per risolvere i problemi relativi al gVNIC, consulta Risoluzione dei problemi relativi al NIC virtuale di Google.
Passaggi successivi
- Utilizza il logging dei criteri di rete per registrare quando le connessioni ai pod vengono consentite o negate dai criteri di rete del cluster.