Dokumen ini menunjukkan cara mengaktifkan dukungan NVIDIA® GPU untuk (VM) yang berjalan menggunakan VM Runtime di GDC. Anda akan mempelajari cara menginstal driver NVIDIA di node Google Distributed Cloud Anda, pastikan GPU tersedia, dan menetapkan GPU ke VM.
Sebelum memulai
Untuk menyelesaikan dokumen ini, Anda memerlukan akses ke referensi berikut:
- Akses ke Google Distributed Cloud versi 1.12.0 (
anthosBareMetalVersion: 1.12.0
) atau cluster yang lebih tinggi. Anda dapat menggunakan jenis cluster apa pun yang dapat menjalankan workload. Jika diperlukan, coba Google Distributed Cloud di Compute Engine atau lihat ringkasan pembuatan cluster. - Alat klien
virtctl
diinstal sebagai plugin untukkubectl
. Jika diperlukan, instal alat klien virtctl.
Kartu GPU Nvidia yang didukung
Google Distributed Cloud versi 1.13 atau yang lebih tinggi mendukung GPU NVIDIA berikut:
- Tesla T4
- Tesla P4
- Tesla V100 SXM2 32 GB
- A100 SXM4 40 GB
- PCIe A100 40 GB
- A100 SXM4 80 GB
- PCIe A100 80 GB
Menginstal driver NVIDIA pada node
Sebelum VM Anda dapat menggunakan GPU NVIDIA, Anda harus mengonfigurasi Node Cloud Terdistribusi Google untuk mendukung perangkat GPU. Untuk menginstal NVIDIA driver di node Anda, selesaikan langkah-langkah berikut pada setiap node di cluster Anda yang menyertakan GPU NVIDIA. Dokumen ini menggunakan versi Ubuntu yang didukung untuk node:
- Hubungkan ke node Google Distributed Cloud yang ingin dikonfigurasi untuk GPU dukungan teknis IT.
Dapatkan versi kernel node Anda:
KERNEL_VERSION="$(uname -r)"
Update node Ubuntu Anda dan instal header kernel yang sesuai:
sudo apt update && \ apt install -y linux-headers-${KERNEL_VERSION}
Instal paket
build-essential
agar Anda dapat mengompilasi Nvidia {i>driver<i} dalam langkah berikut:sudo apt install -y build-essential
Download paket driver NVIDIA yang sesuai untuk GPU Anda. Untuk daftar {i>driver<i}, lihat Download Driver NVIDIA.
Contoh berikut mendownload driver
Linux x86_64
versi470.82.01
:wget https://us.download.nvidia.com/tesla/470.82.01/NVIDIA-Linux-x86_64-470.82.01.run
Instal paket driver NVIDIA. Gunakan nama paket driver NVIDIA yang Anda download pada langkah sebelumnya:
sudo sh NVIDIA-Linux-x86_64-470.82.01.run \ --accept-license \ --silent \ --no-nouveau-check
Muat modul kernel NVIDIA:
sudo modprobe nvidia
Ulangi langkah-langkah di bagian ini pada setiap node di cluster Anda yang memiliki GPU NVIDIA.
Mengaktifkan dukungan GPU dalam Runtime VM di GDC
Setelah menginstal driver NVIDIA di node Google Distributed Cloud, Anda mengaktifkan dukungan GPU di VM Runtime di GDC. VM Anda kemudian dapat mengakses GPU pada node.
Setiap node dimulai ulang sebagai bagian dari proses berikut. VM Anda mungkin terpengaruh oleh proses {i>reboot <i}ini. Jika memungkinkan dan dikonfigurasi untuk melakukannya, VM yang dapat dimigrasikan akan dimigrasikan ke node lain. Untuk informasi selengkapnya, lihat cara mengonfigurasi kebijakan penghapusan untuk VM selama peristiwa pemeliharaan.
Untuk mengaktifkan dukungan GPU dalam VM Runtime di GDC, selesaikan langkah-langkah berikut langkah.
Edit resource kustom
VMRuntime
:kubectl edit vmruntime vmruntime
Tambahkan properti
enableGPU: true
ke manifesVMRuntime
:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true enableGPU: true ...
Simpan dan tutup resource kustom
VMRuntime
di editor Anda.Periksa status pengontrol GPU di namespace
vm-system
:kubectl get pods --namespace vm-system -w
Perlu waktu sekitar lima menit agar pengontrol berhasil diaktifkan. Tunggu hingga
STATUS
munculRunning
untuk semua pengontrol GPU. Contoh {i>output<i} berikut menunjukkan kondisi yang diinginkan:NAME READY STATUS RESTARTS AGE gpu-controller-controller-manager-gwvcb 2/2 Running 0 10m kubevirt-gpu-dp-daemonset-2lfkl 1/1 Running 0 10m kubevm-gpu-driver-daemonset-5fwh6 1/1 Running 0 10m nvidia-gpu-dp-daemonset-9zq2w 1/1 Running 0 10m nvidia-mig-manager-5g7pz 1/1 Running 0 10m vm-controller-controller-manager-7b6df6979b 2/2 Running 2 (13m ago) 14m
Pastikan GPU tersedia untuk digunakan saat semua melaporkan statusnya sebagai
Running
:kubectl get gpuallocations --namespace vm-system
Contoh output berikut menunjukkan bahwa GPU pada node tersedia untuk digunakan. Setiap node dalam cluster Anda yang memiliki dukungan GPU akan ditampilkan. Anda mengalokasikan ke VM di bagian berikutnya:
NAME ALLOCATED DEVICEMODEL bm-node1 true Tesla A100 SXM4 40GB bm-node2 true Tesla A100 SXM4 40GB
Mengalokasikan GPU untuk digunakan dengan VM
Dengan dukungan GPU yang dikonfigurasi di cluster Anthos pada node bare metal dan Runtime VM di GDC, alokasikan GPU untuk digunakan dengan VM. Secara {i>default<i}, GPU dialokasikan untuk digunakan dengan pod (container).
Edit resource kustom
GPUAllocation
untuk digunakan dengan VM. Langkah ini menetapkan GPU pada node untuk digunakan dengan VM:kubectl edit gpuallocation NODE_NAME --namespace vm-system
Ganti
NODE_NAME
dengan nama node yang ingin Anda alokasikan GPU dari mereka.Mengonfigurasi berapa banyak GPU yang akan dialokasikan ke VM. Awalnya, semua GPU dialokasikan ke pod.
Jumlah total GPU yang dialokasikan untuk VM dan pod harus sama dengan jumlah GPU dalam node. Misalnya, Anda mungkin memiliki empat GPU di node Anda. Jika Anda mengalokasikan dua GPU ke VM, lalu dua GPU tetap dialokasikan ke pod. Tujuan Manifes
GPUAllocation
ditolak jika Anda mencoba mengalokasikan dua GPU ke VM dan satu GPU ke pod, karena satu GPU tidak dialokasikan.Perbarui jumlah GPU pada node yang ingin Anda alokasikan untuk digunakan dengan VM, seperti yang ditunjukkan dalam contoh berikut:
apiVersion: gpu.cluster.gke.io/v1 kind: GPUAllocation metadata: name: gpu-w2 namespace: vm-system spec: node: gpu-w2 pod: 0 vm: 4
Dalam contoh ini, keempat GPU yang diinstal dalam node dialokasikan ke VM. Lain kali GPU dialokasikan ke pod.
Simpan dan tutup resource kustom
GPUAllocation
di editor Anda.Pastikan GPU melaporkan status
ALLOCATED
-nya sebagaitrue
:kubectl get gpuallocations --namespace vm-system
Contoh output berikut menunjukkan bahwa GPU pada node tersedia untuk digunakan:
NAME ALLOCATED DEVICEMODEL gpu-w1 true Tesla A100 SXM4 40GB gpu-w2 true Tesla A100 SXM4 40GB
Membuat VM dengan dukungan GPU
Sekarang Anda dapat membuat VM yang menggunakan GPU dari node. Di VM kustom , tentukan nama dan jumlah GPU yang akan dialokasikan dari node.
Dapatkan nama kartu GPU dari host:
kubectl describe node NODE_NAME
Ganti
NODE_NAME
dengan nama host yang Anda inginkan untuk mendapatkan nama GPU.Contoh output berikut menunjukkan bahwa nama GPU yang dapat dialokasikan pada node ini adalah
NVIDIA_A100_SXM4_40GB
:Name: bm-node1 Roles: worker [...] Allocatable: cpu: 47810m [...] memory: 336929400Ki nvidia.com/gpu-vm-NVIDIA_A100_SXM4_40GB: 1 [...]
Membuat manifes
VirtualMachine
, sepertimy-gpu-vm.yaml
, di editor pilihan Anda:nano my-gpu-vm.yaml
Salin dan tempel manifes YAML berikut:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true gpu: model: nvidia.com/gpu-vm-GPU_NAME quantity: 1
Dalam file YAML ini, tentukan setelan berikut:
VM_NAME
: nama untuk VM Anda.GPU_NAME
: nama GPU dari node yang akan dialokasikan ke Pesan Suara.- Nama GPU ini ditampilkan dalam output perintah
kubectl describe node
dari langkah sebelumnya, sepertiNVIDIA_A100_SXM4_40GB
.
- Nama GPU ini ditampilkan dalam output perintah
VM menghubungkan
eth0
ke jaringanpod-network
default.Disk booting bernama
VM_NAME-boot-dv
harus sudah ada. Untuk informasi selengkapnya, lihat Buat dan kelola disk virtual.Simpan dan tutup manifes VM di editor Anda.
Buat VM menggunakan
kubectl
:kubectl apply -f my-gpu-vm.yaml
Ketika VM Anda berjalan, terhubung ke VM dan memverifikasi bahwa hardware GPU tersedia.