Questa pagina mostra come utilizzare il plug-in Fast Socket Library (NCCL) NVIDIA Collective Communication Library per eseguire carichi di lavoro più efficienti sui cluster Google Kubernetes Engine (GKE).
I cluster Autopilot non supportano il socket veloce NCCL.
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 initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo
gcloud components update
.
Limitazioni
- Si applicano le limitazioni di Compute Engine.
- Si applicano le limitazioni gVNIC.
- Fast Socket NCCL supportato solo sui pool di nodi con acceleratori hardware abilitati.
Requisiti
- Per utilizzare Fast Socket NCCL, nei pool di nodi deve essere abilitato gVNIC.
- I nodi GKE devono utilizzare un'immagine nodo del sistema operativo ottimizzato per i container.
- I cluster devono eseguire GKE versione 1.25.2-gke.1700 o successiva.
Crea un cluster
Crea un nuovo cluster:
gcloud container clusters create CLUSTER_NAME \
--cluster-version=VERSION \
--region=COMPUTE_REGION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.VERSION
: la versione di GKE, che deve essere 1.25.2-gke.1700 o successiva. Puoi anche utilizzare il flag--release-channel
per selezionare un canale di rilascio. La versione predefinita del canale di rilascio deve essere 1.25.2-gke.1700 o successive.COMPUTE_REGION
: la regione di Compute Engine per il nuovo cluster. Per i cluster di zona, utilizza--zone=COMPUTE_ZONE
.
Attiva Fast Socket NCCL
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 utilizzato. Ad esempio:nvidia-tesla-t4
.ACCELERATOR_COUNT
: il numero di GPU per nodo.MACHINE_TYPE
: il tipo di macchina che vuoi utilizzare. Fast Socket NCCL non supportato nei tipi di macchine ottimizzate per la memoria.
Installa i driver di dispositivi GPU NVIDIA
Segui le istruzioni in Installazione dei driver di dispositivo GPU NVIDIA per installare i driver di dispositivo NVIDIA richiesti sui tuoi nodi.
Verificare che l'opzione Fast Socket NCCL sia abilitata
Per verificare che il socket rapido di NCCL 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
Per disattivare Fast Socket NCCL, esegui questo comando:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
Il plug-in è ancora installato sui nodi esistenti. Devi ridimensionare manualmente il pool di nodi per eseguire la migrazione dei carichi di lavoro in nuovi nodi.
Risoluzione dei problemi
Per risolvere i problemi relativi a 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.