Halaman ini menjelaskan cara menjalankan pengujian NCCL/gIB di cluster GKE. Pilih langkah-langkah untuk jenis mesin Anda:
A4X
Buat koneksi ke cluster Anda:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=COMPUTE_REGIONGanti variabel berikut:
CLUSTER_NAME: nama cluster Anda, yang, untuk cluster yang dibuat dengan Cluster Toolkit, didasarkan padaDEPLOYMENT_NAME.COMPUTE_REGION: nama region komputasi.
Deploy uji performa NCCL all-gather dengan TAS yang diaktifkan menggunakan file gke-a4x/nccl-jobset-example.yaml:
Pengujian menggunakan sejumlah node tertentu secara default. Jika Anda ingin mengubah jumlah node, ubah file YAML untuk mengubah nilai berikut ke jumlah node yang Anda inginkan:
numNodesparallelismcompletionsN_NODES
Buat resource untuk menjalankan pengujian:
kubectl create -f ~/cluster-toolkit/examples/gke-a4x/nccl-jobset-example.yaml
Konfirmasi bahwa semua Pod
nccl-testtelah mencapai statusCompleted:kubectl get podsOutputnya akan mirip dengan berikut ini:
nccl-all-worker-0-0-ft8jm 0/1 Completed 0 13m nccl-all-worker-0-1-prpvw 0/1 Completed 0 13mTemukan nama Pod yang cocok dengan pola
nccl-all-worker-0-0-*. Log Pod ini berisi hasil pengujian NCCL.Untuk mengambil log Pod ini, jalankan perintah berikut:
kubectl logs $(kubectl get pods -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | grep nccl-all-worker-0-0)
Outputnya akan mirip dengan berikut ini:
# 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
Buat koneksi ke cluster Anda:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=COMPUTE_REGIONGanti variabel berikut:
CLUSTER_NAME: nama cluster Anda, yang, untuk cluster yang dibuat dengan Cluster Toolkit, didasarkan padaDEPLOYMENT_NAME.COMPUTE_REGION: nama region komputasi.
Deploy uji performa NCCL all-gather dengan TAS yang diaktifkan menggunakan file gke-a4/nccl-jobset-example.yaml:
Ubah file YAML dengan cara berikut jika Anda memenuhi persyaratan:
Pengujian menggunakan sejumlah node tertentu secara default. Jika Anda ingin mengubah jumlah node, ubah nilai berikut ke jumlah node yang Anda inginkan:
parallelismcompletionsN_NODES
Jika Anda ingin menguji node yang disediakan oleh flex-start, di kolom
metadata, lakukan hal berikut:- Ganti nilai
kueue.x-k8s.io/queue-namedengandws-local-queue. Tambahkan anotasi berikut:
annotations: provreq.kueue.x-k8s.io/maxRunDurationSeconds: "600"
- Ganti nilai
Buat resource untuk menjalankan pengujian:
kubectl create -f ~/cluster-toolkit/examples/gke-a4/nccl-jobset-example.yamlPerintah ini menampilkan nama JobSet.
Outputnya akan mirip dengan berikut ini:
jobset.jobset.x-k8s.io/all-gather8t7dt created
Untuk melihat hasil pengujian NCCL, jalankan perintah berikut untuk melihat semua Pod yang berjalan:
kubectl get podsOutputnya akan mirip dengan berikut ini:
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 9m34sTemukan nama Pod yang cocok dengan pola
jobset-name-w-0-0-*. Log Pod ini berisi hasil pengujian NCCL.Untuk mengambil log Pod ini, jalankan perintah berikut:
kubectl logs all-gather8t7dt-w-0-0-n9s6jOutputnya akan mirip dengan berikut ini:
# 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
Buat koneksi ke cluster Anda:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=COMPUTE_REGIONGanti variabel berikut:
CLUSTER_NAME: nama cluster Anda, yang, untuk cluster yang dibuat dengan Cluster Toolkit, didasarkan padaDEPLOYMENT_NAME.COMPUTE_REGION: nama region komputasi.
Deploy uji performa NCCL all-gather dengan TAS yang diaktifkan menggunakan file gke-a3-ultragpu/nccl-jobset-example.yaml:
Ubah file YAML dengan cara berikut jika Anda memenuhi persyaratan:
Pengujian menggunakan sejumlah node tertentu secara default. Jika Anda ingin mengubah jumlah node, ubah nilai berikut ke jumlah node yang Anda inginkan:
parallelismcompletionsN_NODES
Jika Anda ingin menguji node yang disediakan oleh flex-start, di kolom
metadata, lakukan hal berikut:- Ganti nilai
kueue.x-k8s.io/queue-namedengandws-local-queue. Tambahkan anotasi berikut:
annotations: provreq.kueue.x-k8s.io/maxRunDurationSeconds: "600"
- Ganti nilai
Buat resource untuk menjalankan pengujian:
kubectl create -f ~/cluster-toolkit/examples/gke-a3-ultragpu/nccl-jobset-example.yamlPerintah ini menampilkan nama JobSet.
Outputnya akan mirip dengan berikut ini:
jobset.jobset.x-k8s.io/all-gather8t7dt created
Untuk melihat hasil pengujian NCCL, jalankan perintah berikut untuk melihat semua Pod yang berjalan:
kubectl get podsOutputnya akan mirip dengan berikut ini:
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 9m34sTemukan nama Pod yang cocok dengan pola
jobset-name-w-0-0-*. Log Pod ini berisi hasil pengujian NCCL.Untuk mengambil log Pod ini, jalankan perintah berikut:
kubectl logs all-gather8t7dt-w-0-0-n9s6jOutputnya akan mirip dengan berikut ini:
# 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
Langkah berikutnya
- Mengumpulkan dan Memahami Log NCCL untuk Pemecahan Masalah guna memahami output pengujian dan memecahkan masalah.
- Pelajari cara memecahkan masalah performa lambat.