Questa pagina mostra come utilizzare il plug-in Fast Socket della NVIDIA Collective Communication Library (NCCL) per eseguire workload 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
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il comando
gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Limitazioni
- Si applicano le limitazioni di Compute Engine.
- Si applicano le limitazioni gVNIC.
- NCCL Fast Socket è supportato solo nei node pool in cui sono attivati gli acceleratori hardware.
Requisiti
GKE Autopilot:
- I cluster GKE Autopilot devono eseguire la versione 1.30.2-gke.1023000 o successive.
Per maggiori dettagli, consulta Creazione di un cluster Autopilot.
GKE Standard:
- Per utilizzare NCCL Fast Socket, i tuoi node pool devono avere gVNIC abilitato.
- I nodi GKE devono utilizzare un'immagine nodo Container-Optimized OS.
- I cluster devono eseguire GKE versione 1.25.2-gke.1700 o successiva.
Per maggiori dettagli, vedi Creazione di un cluster regionale.
Abilita NCCL Fast Socket nei cluster standard
Questa sezione mostra come attivare il plug-in NCCL Fast Socket nei pool di nodi GKE Standard. Se utilizzi cluster GKE Autopilot, GKE attiva automaticamente il plug-in quando richiedi NCCL Fast Socket nei tuoi carichi di lavoro. Per istruzioni, consulta la sezione NCCL Fast Socket in Autopilot.
Per i cluster Standard, crea un pool di nodi che utilizzi il plug-in NCCL Fast Socket. 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: il tipo di macchina che vuoi utilizzare. NCCL Fast Socket non è supportato sui tipi di macchine ottimizzati per la memoria.
Installa i driver del dispositivo GPU NVIDIA
In Autopilot, i driver dei dispositivi GPU vengono installati automaticamente.
Per i cluster Standard, segui le istruzioni riportate in Installazione dei driver di dispositivo GPU NVIDIA per installare i driver di dispositivo NVIDIA richiesti sui nodi.
NCCL Fast Socket in Autopilot
Nei cluster Autopilot, richiedi NCCL Fast Socket nei tuoi carichi di lavoro utilizzando il selettore di nodi cloud.google.com/gke-nccl-fastsocket.
Quando richiedi NCCL Fast Socket in un workload, GKE
abilita gVNIC e NCCL Fast Socket sui nodi che GKE
provisiona per il workload.
Puoi utilizzare NCCL Fast Socket 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-gb200: NVIDIA GB200 (anteprima)nvidia-b200: NVIDIA B200 (180GB)nvidia-h200-141gb: NVIDIA H200 (141GB)nvidia-h100-mega-80gb: NVIDIA H100 Mega (80GB)nvidia-h100-80gb: NVIDIA H100 (80GB)nvidia-a100-80gb: NVIDIA A100 (80GB)nvidia-tesla-a100: NVIDIA A100 (40GB)nvidia-rtx-pro-6000: NVIDIA RTX PRO 6000nvidia-l4: NVIDIA L4nvidia-tesla-t4: NVIDIA T4
GPU_QUANTITY: il numero di GPU da allocare al container.
Verifica che NCCL Fast Socket sia abilitato
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 NCCL Fast Socket
Nei cluster GKE Autopilot, il plug-in NCCL Fast Socket è disabilitato per impostazione predefinita. Per disattivare il plug-in su un workload esistente, rifai il deployment del workload senza il selettore di nodi NCCL Fast Socket.
Per disattivare 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
Questo comando ricrea i nodi nel pool di nodi senza il plug-in NCCL Fast Socket. Questo processo potrebbe interrompere i workload in esecuzione.
Risoluzione dei problemi
Per risolvere i problemi relativi a gVNIC, consulta Risoluzione dei problemi relativi a Google Virtual NIC.
Passaggi successivi
- Utilizza il logging delle policy di rete per registrare quando le connessioni ai pod sono consentite o negate dalle policy di rete del cluster.