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
- Batasan Compute Engine berlaku.
- Batasan gVNIC berlaku.
- NCCL Fast Socket hanya didukung pada node pool yang telah mengaktifkan akselerator hardware.
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 L4nvidia-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
- Gunakan logging kebijakan jaringan untuk mencatat waktu pengizinan atau penolakan koneksi ke Pod oleh kebijakan jaringan cluster Anda.