Halaman ini menjelaskan cara mengaktifkan dan 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. Dukungan GPU dinonaktifkan secara default. Anda harus mengaktifkan dukungan GPU secara eksplisit di cluster Distributed Cloud terhubung. Perlu diingat bahwa Distributed Cloud Server tidak mendukung workload GPU.
Untuk merencanakan dan memesan konfigurasi tersebut, pilih konfigurasi 2 dalam dokumen berikut:
Jika rak yang terhubung ke Distributed Cloud Anda menyertakan GPU, Anda dapat mengonfigurasi workload yang terhubung ke Distributed Cloud untuk menggunakan resource GPU.
Workload yang terhubung ke Distributed Cloud dapat berjalan di container dan di virtual machine:
Workload GPU yang berjalan di container. Saat Anda mengaktifkan dukungan GPU, semua resource GPU di cluster yang terhubung ke Distributed Cloud awalnya dialokasikan ke workload yang berjalan di container. Driver GPU untuk menjalankan workload dalam container berbasis GPU 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.
Mengaktifkan dukungan GPU
Untuk mengaktifkan dukungan GPU bagi beban kerja Anda, Anda harus membuat atau mengubah resource kustom VMRuntime yang berisi parameter enableGPU dengan nilai yang ditetapkan ke true, lalu menerapkannya ke cluster yang terhubung ke Distributed Cloud.
Contoh:
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Enable GPU support enableGPU: true
Bergantung pada jenis cluster tempat Anda ingin mengaktifkan subsistem mesin virtual VM Runtime on GDC, lakukan salah satu hal berikut:
- Untuk cluster bidang kontrol Cloud yang belum mengaktifkan subsistem mesin virtual VM Runtime di GDC, Anda harus membuat resource
VMRuntimesecara manual. - Untuk cluster bidang kontrol Cloud yang telah mengaktifkan subsistem mesin virtual VM Runtime on GDC, Anda harus mengedit resource
VMRuntimeyang ada - Untuk cluster bidang kontrol lokal, Anda harus mengedit resource
VMRuntimeyang ada.
Resource VMRuntime yang sama ini juga mengonfigurasi dukungan VM Runtime di GDC
pada cluster Anda
dengan menggunakan parameter enable. Pastikan Anda mengonfigurasi kedua parameter
sesuai dengan kebutuhan workload Anda. Anda tidak perlu mengaktifkan
dukungan VM Runtime di GDC untuk mengaktifkan dukungan GPU di
cluster yang terhubung ke Distributed Cloud.
Tabel berikut menjelaskan konfigurasi yang tersedia.
Nilai enable |
Nilai enableGPU |
Konfigurasi yang dihasilkan |
|---|---|---|
false |
false |
Workload hanya berjalan di container dan tidak dapat menggunakan resource GPU. |
false |
true |
Workload hanya berjalan di container dan dapat menggunakan resource GPU. |
true |
true |
Beban kerja dapat berjalan di virtual machine dan di container. Kedua jenis workload dapat menggunakan resource GPU. |
true |
false |
Beban kerja dapat berjalan di virtual machine dan di container. Kedua jenis workload tidak dapat menggunakan resource GPU. |
Pastikan dukungan GPU telah diaktifkan
Untuk memverifikasi bahwa dukungan GPU telah diaktifkan di cluster Anda, gunakan perintah berikut:
kubectl get pods --namespace vm-system
Perintah ini menampilkan output yang mirip dengan contoh berikut:
NAME READY STATUS RESTARTS AGE
...
gpu-controller-controller-manager-vbv4w 2/2 Running 0 31h
kubevirt-gpu-dp-daemonset-gxj7g 1/1 Running 0 31h
nvidia-gpu-dp-daemonset-bq2vj 1/1 Running 0 31h
...
Dalam output, Anda dapat memverifikasi bahwa Pod pengontrol GPU telah di-deploy
dan berjalan di namespace vm-system.
Mengalokasikan resource GPU
Secara default, saat Anda mengaktifkan dukungan GPU di cluster yang terhubung Distributed Cloud, 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: nvidia.com/gpu-pod-TESLA_T4: 2 limits: nvidia.com/gpu-pod-TESLA_T4: 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.
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: nvidia.com/gpu-vm-TESLA_T4 quantity: 2