Halaman ini menjelaskan cara mengelola workload unit pemrosesan grafis (GPU) di Google Distributed Cloud terhubung. Untuk memanfaatkan fungsi ini, Anda harus memiliki konfigurasi hardware yang terhubung ke Distributed Cloud yang berisi GPU. Untuk mengetahui informasi selengkapnya, lihat Merencanakan konfigurasi hardware.
Workload yang terhubung ke Distributed Cloud dapat berjalan di container dan di virtual machine:
Workload GPU yang berjalan di container. Semua resource GPU di cluster Distributed Cloud terhubung Anda awalnya dialokasikan untuk workload yang berjalan di container. Driver GPU untuk menjalankan workload berbasis GPU yang di-container disertakan dalam Distributed Cloud terhubung. Dalam setiap container, library GPU dipasang di
/opt/nvidia.Workload GPU yang berjalan di mesin virtual. Untuk menjalankan workload berbasis GPU di virtual machine, Anda harus mengalokasikan resource GPU di target node terhubung Distributed Cloud ke virtual machine, seperti yang dijelaskan di halaman ini. Tindakan ini akan melewati driver GPU bawaan dan meneruskan GPU langsung ke mesin virtual. Anda harus menginstal driver GPU yang kompatibel secara manual di sistem operasi tamu setiap mesin virtual. Anda juga harus mengamankan semua lisensi yang diperlukan untuk menjalankan driver GPU khusus di virtual machine Anda.
Untuk mengonfirmasi bahwa GPU ada di node yang terhubung ke Distributed Cloud, verifikasi bahwa node memiliki label vm.cluster.gke.io.gpu=true. Jika
label tidak ada di node, berarti tidak ada GPU yang diinstal di
mesin fisik yang terhubung ke Distributed Cloud yang sesuai.
Mengalokasikan resource GPU
Secara default, semua resource GPU di setiap node dalam cluster dialokasikan ke workload dalam container. Untuk menyesuaikan alokasi resource GPU di setiap node, selesaikan langkah-langkah di bagian ini.
Mengonfigurasi alokasi resource GPU
Untuk mengalokasikan resource GPU pada node yang terhubung ke Distributed Cloud, gunakan perintah berikut untuk mengedit resource kustom
GPUAllocationpada node target:kubectl edit gpuallocation NODE_NAME --namespace vm-system
Ganti
NODE_NAMEdengan nama target node Distributed Cloud.Pada contoh berikut, output perintah menunjukkan alokasi resource GPU default pabrik. Secara default, semua resource GPU dialokasikan ke workload (
pod) dalam container, dan tidak ada resource GPU yang dialokasikan ke workload (vm) virtual machine:... spec: pod: 2 # Number of GPUs allocated for container workloads vm: 0 # Number of GPUs allocated for VM workloadsTetapkan alokasi resource GPU Anda sebagai berikut:
- Untuk mengalokasikan resource GPU ke workload yang di-container, naikkan nilai
kolom
poddan turunkan nilai kolomvmdengan jumlah yang sama. - Untuk mengalokasikan resource GPU ke workload virtual machine, tingkatkan nilai
kolom
vmdan kurangi nilai kolompoddengan jumlah yang sama.
Jumlah total resource GPU yang dialokasikan tidak boleh melebihi jumlah GPU yang diinstal pada mesin yang terhubung ke Distributed Cloud fisik tempat node berjalan; jika tidak, node akan menolak alokasi yang tidak valid.
Dalam contoh berikut, dua resource GPU telah dialokasikan ulang dari beban kerja yang di-container (
pod) ke beban kerja virtual machine (vm):... spec: pod: 0 # Number of GPUs allocated for container workloads vm: 2 # Number of GPUs allocated for VM workloadsSetelah selesai, terapkan resource
GPUAllocationyang telah diubah ke cluster Anda dan tunggu hingga statusnya berubah menjadiAllocationFulfilled.- Untuk mengalokasikan resource GPU ke workload yang di-container, naikkan nilai
kolom
Memeriksa alokasi resource GPU
Untuk memeriksa alokasi resource GPU, gunakan perintah berikut:
kubectl describe gpuallocations NODE_NAME --namespace vm-system
Ganti
NODE_NAMEdengan nama target node yang terhubung ke Distributed Cloud.Perintah ini menampilkan output yang mirip dengan contoh berikut:
Name: mynode1 ... spec: node: mynode1 pod: 2 # Number of GPUs allocated for container workloads vm: 0 # Number of GPUs allocated for VM workloads Status: Allocated: true Conditions: Last Transition Time: 2022-09-23T03:14:10Z Message: Observed Generation: 1 Reason: AllocationFulfilled Status: True Type: AllocationStatus Last Transition Time: 2022-09-23T03:14:16Z Message: Observed Generation: 1 Reason: DeviceStateUpdated Status: True Type: DeviceStateUpdated Consumption: pod: 0/2 # Number of GPUs currently consumed by container workloads vm: 0/0 # Number of GPUs currently consumed by VM workloads Device Model: Tesla T4 Events: <none>
Mengonfigurasi container untuk menggunakan resource GPU
Untuk mengonfigurasi container yang berjalan di Distributed Cloud yang terhubung ke penggunaan resource GPU, konfigurasikan spesifikasinya seperti yang ditunjukkan dalam contoh berikut, lalu terapkan ke cluster Anda:
apiVersion: v1 kind: Pod metadata: name: my-gpu-pod spec: containers: - name: my-gpu-container image: CUDA_TOOLKIT_IMAGE command: ["/bin/bash", "-c", "--"] args: ["while true; do sleep 600; done;"] env: resources: requests: GPU_MODEL: 2 limits: GPU_MODEL: 2 nodeSelector: kubernetes.io/hostname: NODE_NAME
Ganti kode berikut:
CUDA_TOOLKIT_IMAGE: jalur lengkap dan nama image toolkit NVIDIA CUDA. Versi toolkit CUDA harus cocok dengan versi driver NVIDIA yang berjalan di cluster yang terhubung ke Distributed Cloud Anda. Untuk menentukan versi driver NVIDIA Anda, lihat Catatan rilis Distributed Cloud. Untuk menemukan versi toolkit CUDA yang cocok, lihat Kompatibilitas CUDA.NODE_NAME: nama target node yang terhubung ke Distributed Cloud.GPU_MODEL: model GPU NVIDIA yang diinstal di mesin target yang terhubung ke Distributed Cloud. Nilai yang valid adalah:nvidia.com/gpu-pod-NVIDIA_L4untuk GPU NVIDIA L4nvidia.com/gpu-pod-TESLA_T4untuk GPU NVIDIA Tesla T4
Mengonfigurasi virtual machine untuk menggunakan resource GPU
Untuk mengonfigurasi virtual machine yang berjalan di
Distributed Cloud yang terhubung untuk menggunakan resource GPU, konfigurasikan
spesifikasi resource VirtualMachine-nya seperti yang ditunjukkan dalam contoh berikut,
lalu terapkan ke cluster Anda:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine ... spec: ... gpu: model: GPU_MODEL quantity: 2
Ganti kode berikut:
GPU_MODEL: model GPU NVIDIA yang diinstal di mesin target yang terhubung ke Distributed Cloud. Nilai yang valid adalah:nvidia.com/gpu-pod-NVIDIA_L4untuk GPU NVIDIA L4nvidia.com/gpu-pod-TESLA_T4untuk GPU NVIDIA Tesla T4