Meningkatkan efisiensi workload menggunakan NCCL Fast Socket


Halaman ini menunjukkan cara menggunakan plugin Fast Socket NVIDIA Collective Communication Library (NCCL) untuk menjalankan workload yang lebih efisien di cluster Google Kubernetes Engine (GKE) Anda.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Batasan

Persyaratan

GKE Autopilot:

  • Cluster GKE Autopilot harus menjalankan 1.30.2-gke.1023000 atau yang lebih baru.

Untuk mengetahui detailnya, lihat Membuat cluster Autopilot.

GKE Standard:

  • Node pool Anda harus mengaktifkan gVNIC agar dapat menggunakan NCCL Fast Socket.
  • Node GKE harus menggunakan image node Container-Optimized OS.
  • Cluster Anda harus menjalankan GKE versi 1.25.2-gke.1700 atau yang lebih baru.

Untuk mengetahui detailnya, lihat Membuat cluster regional.

Mengaktifkan NCCL Fast Socket di cluster Standard

Bagian ini menunjukkan cara mengaktifkan plugin Fast Socket NCCL di node pool GKE Standard. Jika Anda menggunakan cluster GKE Autopilot, GKE akan otomatis mengaktifkan plugin saat Anda meminta NCCL Fast Socket dalam workload. Untuk mengetahui petunjuknya, lihat bagian NCCL Fast Socket di Autopilot.

Untuk cluster Standard, buat node pool yang menggunakan plugin Fast Socket NCCL. Anda juga dapat memperbarui node pool yang ada menggunakan 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

Mengganti kode berikut:

  • NODEPOOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster.
  • ACCELERATOR_TYPE: jenis akselerator GPU yang Anda gunakan. Misalnya, nvidia-tesla-t4.
  • ACCELERATOR_COUNT: jumlah GPU per node.
  • MACHINE_TYPE: jenis mesin yang ingin digunakan. NCCL Fast Socket tidak didukung do jenis mesin yang dioptimalkan untuk memori.

Menginstal driver perangkat GPU NVIDIA

Di Autopilot, driver perangkat GPU diinstal secara otomatis.

Untuk cluster Standar, ikuti petunjuk di Menginstal driver perangkat GPU NVIDIA untuk menginstal driver perangkat NVIDIA yang diperlukan di node Anda.

NCCL Fast Socket di Autopilot

Di cluster Autopilot, Anda meminta NCCL Fast Socket dalam workload menggunakan pemilih node cloud.google.com/gke-nccl-fastsocket. Saat Anda meminta NCCL Fast Socket dalam workload, GKE akan mengaktifkan gVNIC dan NCCL Fast Socket di node yang disediakan GKE untuk workload. Anda dapat menggunakan NCCL Fast Socket dengan jenis GPU apa pun yang didukung Autopilot.

Pod berikut meminta 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

Ganti kode berikut:

  • GPU_TYPE: jenis hardware GPU. Nilai yang diperbolehkan adalah sebagai berikut:
    • 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-l4: NVIDIA L4
    • nvidia-tesla-t4: NVIDIA T4
  • GPU_QUANTITY: jumlah GPU yang akan dialokasikan ke penampung.

Memastikan NCCL Fast Socket diaktifkan

Untuk memastikan bahwa NCCL Fast Socket telah diaktifkan, lihat pod sistem kube:

kubectl get pods -n kube-system

Output-nya mirip dengan hal berikut ini:

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

Dalam output ini, jumlah Pod harus sama dengan jumlah node dalam node pool.

Menonaktifkan NCCL Fast Socket

Di cluster GKE Autopilot, plugin NCCL Fast Socket dinonaktifkan secara default. Untuk menonaktifkan plugin pada workload yang ada, deploy ulang workload tanpa pemilih node NCCL Fast Socket.

Untuk menonaktifkan NCCL Fast Socket bagi node pool di cluster Standard, jalankan perintah berikut:

gcloud container node-pools update NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --no-enable-fast-socket

Node yang ada masih memiliki plugin yang terinstal. Anda harus mengubah ukuran node pool secara manual untuk memigrasikan workload ke node baru.

Pemecahan masalah

Untuk memecahkan masalah gVNIC, lihat Memecahkan Masalah Google Virtual NIC.

Langkah berikutnya