Questa pagina descrive come eseguire i test NCCL/gIB sui cluster GKE. Scegli i passaggi per il tuo tipo di macchina:
A4X
Connettiti al cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=COMPUTE_REGIONSostituisci le seguenti variabili:
CLUSTER_NAME: il nome del tuo cluster, che, per i cluster creati con Cluster Toolkit, si basa suDEPLOYMENT_NAME.COMPUTE_REGION: il nome della regione di computing.
Esegui il deployment di un test delle prestazioni NCCL all-gather con TAS abilitato utilizzando il file gke-a4x/nccl-jobset-example.yaml:
Per impostazione predefinita, il test utilizza un determinato numero di nodi. Se vuoi modificare il numero di nodi, modifica il file YAML per cambiare i seguenti valori in base al numero di nodi richiesto:
numNodesparallelismcompletionsN_NODES
Crea le risorse per eseguire il test:
kubectl create -f ~/cluster-toolkit/examples/gke-a4x/nccl-jobset-example.yaml
Verifica che tutti i pod
nccl-testabbiano raggiunto lo statoCompleted:kubectl get podsL'output dovrebbe essere simile al seguente:
nccl-all-worker-0-0-ft8jm 0/1 Completed 0 13m nccl-all-worker-0-1-prpvw 0/1 Completed 0 13mTrova un nome di pod corrispondente al pattern
nccl-all-worker-0-0-*. I log di questo pod contengono i risultati del test NCCL.Per recuperare i log per questo pod, esegui il comando seguente:
kubectl logs $(kubectl get pods -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | grep nccl-all-worker-0-0)
L'output dovrebbe essere simile al seguente:
# out-of-place in-place # size count type redop root time algbw busbw #wrong time algbw busbw #wrong # (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s) 1024 32 float none -1 19.60 0.05 0.05 0 19.00 0.05 0.05 0 2048 64 float none -1 19.63 0.10 0.09 0 19.47 0.11 0.09 0 4096 128 float none -1 19.88 0.21 0.18 0 19.61 0.21 0.18 0 8192 256 float none -1 20.31 0.40 0.35 0 19.82 0.41 0.36 0 16384 512 float none -1 20.30 0.81 0.71 0 20.17 0.81 0.71 0 32768 1024 float none -1 20.70 1.58 1.39 0 20.36 1.61 1.41 0 65536 2048 float none -1 20.94 3.13 2.74 0 20.88 3.14 2.75 0 131072 4096 float none -1 21.12 6.20 5.43 0 20.96 6.25 5.47 0 262144 8192 float none -1 21.24 12.34 10.80 0 21.01 12.48 10.92 0 524288 16384 float none -1 21.28 24.63 21.55 0 21.07 24.88 21.77 0 1048576 32768 float none -1 21.95 47.77 41.80 0 21.72 48.28 42.24 0 2097152 65536 float none -1 24.15 86.85 76.00 0 23.75 88.30 77.26 0 4194304 131072 float none -1 31.50 133.13 116.49 0 30.75 136.39 119.34 0 8388608 262144 float none -1 47.42 176.88 154.77 0 46.47 180.51 157.95 0 16777216 524288 float none -1 48.72 344.39 301.34 0 47.85 350.63 306.80 0 33554432 1048576 float none -1 75.08 446.91 391.05 0 73.89 454.10 397.34 0 67108864 2097152 float none -1 178.7 375.47 328.53 0 179.1 374.67 327.84 0 134217728 4194304 float none -1 211.1 635.86 556.37 0 211.3 635.21 555.81 0 268435456 8388608 float none -1 413.2 649.68 568.47 0 414.9 646.95 566.08 0 536870912 16777216 float none -1 820.1 654.64 572.81 0 814.9 658.81 576.46 0 1073741824 33554432 float none -1 1566.5 685.43 599.76 0 1567.9 684.82 599.22 0 2147483648 67108864 float none -1 3025.3 709.83 621.10 0 3017.2 711.74 622.77 0 4294967296 134217728 float none -1 5898.8 728.11 637.10 0 5784.0 742.57 649.74 0 8589934592 268435456 float none -1 11541 744.31 651.28 0 11293 760.67 665.58 0 # Out of bounds values : 0 OK # Avg bus bandwidth : 236.839
A4
Connettiti al cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=COMPUTE_REGIONSostituisci le seguenti variabili:
CLUSTER_NAME: il nome del tuo cluster, che, per i cluster creati con Cluster Toolkit, si basa suDEPLOYMENT_NAME.COMPUTE_REGION: il nome della regione di computing.
Esegui il deployment di un test delle prestazioni NCCL all-gather con TAS abilitato utilizzando il file gke-a4/nccl-jobset-example.yaml:
Modifica il file YAML nei seguenti modi se soddisfi le condizioni:
Per impostazione predefinita, i test utilizzano un determinato numero di nodi. Se vuoi modificare il numero di nodi, cambia i seguenti valori con il numero di nodi che ti serve:
parallelismcompletionsN_NODES
Se vuoi testare i nodi di cui è stato eseguito il provisioning con l'avvio flessibile, nel campo
metadata:- Sostituisci il valore
kueue.x-k8s.io/queue-namecondws-local-queue. Aggiungi la seguente annotazione:
annotations: provreq.kueue.x-k8s.io/maxRunDurationSeconds: "600"
- Sostituisci il valore
Crea le risorse per eseguire il test:
kubectl create -f ~/cluster-toolkit/examples/gke-a4/nccl-jobset-example.yamlQuesto comando restituisce un nome JobSet.
L'output dovrebbe essere simile al seguente:
jobset.jobset.x-k8s.io/all-gather8t7dt created
Per visualizzare i risultati del test NCCL, esegui questo comando per visualizzare tutti i pod in esecuzione:
kubectl get podsL'output dovrebbe essere simile al seguente:
NAME READY STATUS RESTARTS AGE all-gather8t7dt-w-0-0-n9s6j 0/1 Completed 0 9m34s all-gather8t7dt-w-0-1-rsf7r 0/1 Completed 0 9m34sTrova un nome di pod corrispondente al pattern
jobset-name-w-0-0-*. I log di questo pod contengono i risultati del test NCCL.Per recuperare i log per questo pod, esegui il comando seguente:
kubectl logs all-gather8t7dt-w-0-0-n9s6jL'output dovrebbe essere simile al seguente:
# size count type redop root time algbw busbw #wrong time algbw busbw #wrong # (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s) 1024 16 float none -1 54.07 0.02 0.02 0 55.80 0.02 0.02 0 2048 32 float none -1 55.46 0.04 0.03 0 55.31 0.04 0.03 0 4096 64 float none -1 55.59 0.07 0.07 0 55.38 0.07 0.07 0 8192 128 float none -1 56.05 0.15 0.14 0 55.92 0.15 0.14 0 16384 256 float none -1 57.08 0.29 0.27 0 57.75 0.28 0.27 0 32768 512 float none -1 57.49 0.57 0.53 0 57.22 0.57 0.54 0 65536 1024 float none -1 59.20 1.11 1.04 0 59.20 1.11 1.04 0 131072 2048 float none -1 59.58 2.20 2.06 0 63.57 2.06 1.93 0 262144 4096 float none -1 63.87 4.10 3.85 0 63.61 4.12 3.86 0 524288 8192 float none -1 64.83 8.09 7.58 0 64.40 8.14 7.63 0 1048576 16384 float none -1 79.74 13.15 12.33 0 76.66 13.68 12.82 0 2097152 32768 float none -1 78.41 26.74 25.07 0 79.05 26.53 24.87 0 4194304 65536 float none -1 83.21 50.41 47.26 0 81.25 51.62 48.39 0 8388608 131072 float none -1 94.35 88.91 83.35 0 99.07 84.68 79.38 0 16777216 262144 float none -1 122.9 136.55 128.02 0 121.7 137.83 129.21 0 33554432 524288 float none -1 184.2 182.19 170.80 0 178.1 188.38 176.60 0 67108864 1048576 float none -1 294.7 227.75 213.51 0 277.7 241.62 226.52 0 134217728 2097152 float none -1 495.4 270.94 254.00 0 488.8 274.60 257.43 0 268435456 4194304 float none -1 877.5 305.92 286.80 0 861.3 311.65 292.17 0 536870912 8388608 float none -1 1589.8 337.71 316.60 0 1576.2 340.61 319.33 0 1073741824 16777216 float none -1 3105.7 345.74 324.13 0 3069.2 349.85 327.98 0 2147483648 33554432 float none -1 6161.7 348.52 326.74 0 6070.7 353.75 331.64 0 4294967296 67108864 float none -1 12305 349.03 327.22 0 12053 356.35 334.08 0 8589934592 134217728 float none -1 24489 350.77 328.85 0 23991 358.05 335.67 0 # Out of bounds values : 0 OK # Avg bus bandwidth : 120.248
A3 Ultra
Connettiti al cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=COMPUTE_REGIONSostituisci le seguenti variabili:
CLUSTER_NAME: il nome del tuo cluster, che, per i cluster creati con Cluster Toolkit, si basa suDEPLOYMENT_NAME.COMPUTE_REGION: il nome della regione di computing.
Esegui il deployment di un test delle prestazioni NCCL all-gather con TAS abilitato utilizzando il file gke-a3-ultragpu/nccl-jobset-example.yaml:
Modifica il file YAML nei seguenti modi se soddisfi le condizioni:
Per impostazione predefinita, i test utilizzano un determinato numero di nodi. Se vuoi modificare il numero di nodi, cambia i seguenti valori con il numero di nodi che ti serve:
parallelismcompletionsN_NODES
Se vuoi testare i nodi di cui è stato eseguito il provisioning con l'avvio flessibile, nel campo
metadata:- Sostituisci il valore
kueue.x-k8s.io/queue-namecondws-local-queue. Aggiungi la seguente annotazione:
annotations: provreq.kueue.x-k8s.io/maxRunDurationSeconds: "600"
- Sostituisci il valore
Crea le risorse per eseguire il test:
kubectl create -f ~/cluster-toolkit/examples/gke-a3-ultragpu/nccl-jobset-example.yamlQuesto comando restituisce un nome JobSet.
L'output dovrebbe essere simile al seguente:
jobset.jobset.x-k8s.io/all-gather8t7dt created
Per visualizzare i risultati del test NCCL, esegui questo comando per visualizzare tutti i pod in esecuzione:
kubectl get podsL'output dovrebbe essere simile al seguente:
NAME READY STATUS RESTARTS AGE all-gather8t7dt-w-0-0-n9s6j 0/1 Completed 0 9m34s all-gather8t7dt-w-0-1-rsf7r 0/1 Completed 0 9m34sTrova un nome di pod corrispondente al pattern
jobset-name-w-0-0-*. I log di questo pod contengono i risultati del test NCCL.Per recuperare i log per questo pod, esegui il comando seguente:
kubectl logs all-gather8t7dt-w-0-0-n9s6jL'output dovrebbe essere simile al seguente:
# size count type redop root time algbw busbw #wrong time algbw busbw #wrong # (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s) 1024 16 float none -1 54.07 0.02 0.02 0 55.80 0.02 0.02 0 2048 32 float none -1 55.46 0.04 0.03 0 55.31 0.04 0.03 0 4096 64 float none -1 55.59 0.07 0.07 0 55.38 0.07 0.07 0 8192 128 float none -1 56.05 0.15 0.14 0 55.92 0.15 0.14 0 16384 256 float none -1 57.08 0.29 0.27 0 57.75 0.28 0.27 0 32768 512 float none -1 57.49 0.57 0.53 0 57.22 0.57 0.54 0 65536 1024 float none -1 59.20 1.11 1.04 0 59.20 1.11 1.04 0 131072 2048 float none -1 59.58 2.20 2.06 0 63.57 2.06 1.93 0 262144 4096 float none -1 63.87 4.10 3.85 0 63.61 4.12 3.86 0 524288 8192 float none -1 64.83 8.09 7.58 0 64.40 8.14 7.63 0 1048576 16384 float none -1 79.74 13.15 12.33 0 76.66 13.68 12.82 0 2097152 32768 float none -1 78.41 26.74 25.07 0 79.05 26.53 24.87 0 4194304 65536 float none -1 83.21 50.41 47.26 0 81.25 51.62 48.39 0 8388608 131072 float none -1 94.35 88.91 83.35 0 99.07 84.68 79.38 0 16777216 262144 float none -1 122.9 136.55 128.02 0 121.7 137.83 129.21 0 33554432 524288 float none -1 184.2 182.19 170.80 0 178.1 188.38 176.60 0 67108864 1048576 float none -1 294.7 227.75 213.51 0 277.7 241.62 226.52 0 134217728 2097152 float none -1 495.4 270.94 254.00 0 488.8 274.60 257.43 0 268435456 4194304 float none -1 877.5 305.92 286.80 0 861.3 311.65 292.17 0 536870912 8388608 float none -1 1589.8 337.71 316.60 0 1576.2 340.61 319.33 0 1073741824 16777216 float none -1 3105.7 345.74 324.13 0 3069.2 349.85 327.98 0 2147483648 33554432 float none -1 6161.7 348.52 326.74 0 6070.7 353.75 331.64 0 4294967296 67108864 float none -1 12305 349.03 327.22 0 12053 356.35 334.08 0 8589934592 134217728 float none -1 24489 350.77 328.85 0 23991 358.05 335.67 0 # Out of bounds values : 0 OK # Avg bus bandwidth : 120.248
Passaggi successivi
- Raccogli e comprendi i log NCCL per la risoluzione dei problemi per comprendere gli output del test e risolvere i problemi.
- Scopri di più sulla risoluzione dei problemi di prestazioni lente.