Aspek bawa node Anda sendiri dari Google Distributed Cloud (khusus software) di hardware tanpa sistem operasi memungkinkan Anda memanfaatkan hardware canggih, termasuk mesin dengan GPU, untuk mendapatkan performa dan fleksibilitas terbaik untuk cluster Anda.
Dokumen ini menjelaskan cara menginstal dan menggunakan NVIDIA GPU Operator untuk menyiapkan cluster bare metal yang dibuat dengan Google Distributed Cloud untuk digunakan dengan GPU NVIDIA.
Operator GPU NVIDIA menggunakan Framework Operator untuk mengelola komponen software NVIDIA yang diperlukan untuk menyediakan dan mengelola perangkat GPU. Sebaiknya gunakan Operator GPU NVIDIA untuk fleksibilitas dan keunggulan berikut:
Pilihan jenis GPU: Google Distributed Cloud khusus software kompatibel dengan berbagai jenis GPU yang didukung oleh Operator GPU NVIDIA terbaru.
Pilihan sistem operasi yang didukung: Node pekerja cluster dapat menggunakan sistem operasi (OS) yang didukung dengan GPU NVIDIA, dan Anda memiliki opsi untuk menggunakan driver GPU yang telah diinstal sebelumnya atau penginstalan driver dinamis dengan Operator GPU NVIDIA.
Pilihan model deployment: Anda dapat menggunakan GPU NVIDIA pada jenis cluster apa pun dengan node pekerja: cluster pengguna, cluster mandiri, atau cluster campuran.
Halaman ini ditujukan untuk Operator dan administrator IT yang mengelola siklus proses infrastruktur teknologi yang mendasarinya. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud, lihat Tugas dan peran pengguna GKE Enterprise umum.
Sebelum memulai
Sebelum melakukan langkah-langkah di bagian berikut, pastikan Anda telah menyiapkan persyaratan berikut:
Cluster operasional: Pastikan Anda memiliki cluster bare metal fungsional yang dibuat dengan Google Distributed Cloud.
GPU NVIDIA: Pastikan GPU NVIDIA diinstal di node pekerja cluster Anda. Bagian berikut untuk menginstal Operator GPU NVIDIA mencakup langkah-langkah untuk memverifikasi bahwa GPU diinstal dengan benar dan dikenali oleh sistem operasi Anda.
Versi driver NVIDIA yang kompatibel: Versi driver NVIDIA yang Anda gunakan harus kompatibel dengan GPU, sistem operasi, dan versi CUDA yang digunakan aplikasi Anda. Anda memiliki opsi penginstalan driver NVIDIA berikut:
Gunakan Operator GPU NVIDIA untuk menginstal driver GPU NVIDIA versi yang sesuai seperti yang dijelaskan di bagian berikut.
Gunakan driver NVIDIA yang telah diinstal sebelumnya di image sistem operasi Anda.
Gunakan petunjuk di Panduan Mulai Cepat Penginstalan Driver NVIDIA untuk menginstal driver NVIDIA secara manual.
Helm versi 3.0.0 atau yang lebih baru: Instal antarmuka command line Helm untuk pengelolaan paket di workstation admin Anda. Anda menggunakan Helm untuk menginstal Operator GPU NVIDIA. Anda dapat menjalankan perintah berikut untuk mendownload dan menginstal alat command line Helm:
curl -fsSL -o get_helm.sh \ https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh \ ./get_helm.sh
Menginstal dan memverifikasi Operator GPU NVIDIA
Langkah-langkah berikut akan memandu Anda menginstal Operator GPU NVIDIA di cluster bare metal dan membantu Anda mengonfirmasi bahwa Operator GPU NVIDIA berfungsi dengan GPU Anda:
Untuk perangkat GPU yang terhubung melalui peripheral component interconnect express (PCIe), jalankan perintah berikut untuk mendapatkan daftar bus PCI sistem dengan "NVIDIA" dalam namanya:
sudo lspci | grep NVIDIA
Outputnya mirip dengan hal berikut ini:
25:00.0 3D controller: NVIDIA Corporation Device 20b5 (rev a1)
Anda dapat menggunakan alat command line NVIDIA System Management Interface (
nvidia-smi
) di node tertentu untuk mendapatkan informasi yang lebih mendetail tentang perangkat GPU:nvidia-smi
Outputnya mirip dengan hal berikut ini:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.183.01 Driver Version: 535.183.1 CUDA Veersion 12.2 | |-----------------------------------------+----------------------+----------------------| | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA A100 80GB PCIe Off | 00000000:25:00.0 Off | 0 | | N/A 30C P0 44W / 300W | 0MiB / 81920MiB | 0% Default | | | | Disabled | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+
Tambahkan repositori Helm NVIDIA di workstation admin:
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia \ && helm repo update
Instal Operator GPU NVIDIA.
Saat Anda menginstal Operator GPU NVIDIA, ada tiga variasi perintah dasar:
Instal Operator GPU NVIDIA dengan konfigurasi default:
helm install --wait --generate-name \ -n gpu-operator --create-namespace \ nvidia/gpu-operator
Gunakan flag
--set
untuk meneruskan kumpulan key-value pair yang dipisahkan koma untuk menentukan opsi konfigurasi:helm install --wait --generate-name \ -n gpu-operator --create-namespace \ nvidia/gpu-operator \ --set OPTION_1_NAME=OPTION_1_VALUE,OPTION_2_NAME=OPTION_2_VALUE
Untuk mengetahui daftar opsi konfigurasi yang mendetail, lihat Opsi Penyesuaian Diagram Umum dalam dokumentasi NVIDIA. Untuk informasi tentang logistik penggunaan flag
--set
, lihat Format dan Batasan--set
dalam dokumentasi Helm.Nonaktifkan penginstalan driver jika Anda telah menginstal driver GPU NVIDIA di node:
Secara default, Operator GPU NVIDIA men-deploy driver GPU terbaru atau yang ditentukan di semua node pekerja GPU dalam cluster. Hal ini mengharuskan semua node pekerja dengan GPU harus menjalankan versi sistem operasi yang sama untuk menggunakan penampung Driver GPU NVIDIA. Untuk mengatasi hal ini, Anda dapat menginstal driver GPU di node secara manual dan menjalankan perintah
helm install
dengan--set driver.enabled=false
untuk mencegah Operator GPU NVIDIA men-deploy driver.helm install --wait --generate-name \ -n gpu-operator --create-namespace \ nvidia/gpu-operator \ --set driver.enabled=false
Untuk skenario deployment umum dan contoh perintah, lihat Skenario Deployment Umum dalam dokumentasi NVIDIA.
Verifikasi ekspor resource GPU:
Setelah Operator GPU NVIDIA diinstal dengan driver GPU dan plugin perangkat yang berjalan dengan benar, Anda akan melihat bahwa jumlah GPU dikonfigurasi dengan benar di kolom
Allocatable
untuk resource node.kubectl describe node GPU_NODE_NAME | grep Allocatable -A7
Ganti
GPU_NODE_NAME
dengan nama mesin node dengan GPU yang Anda uji.Outputnya mirip dengan hal berikut ini:
Allocatable: cpu: 127130m ephemeral-storage: 858356868519 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 509648288Ki nvidia.com/gpu: 1 pods: 250
Untuk memverifikasi bahwa GPU berfungsi, jalankan contoh tugas GPU berikut, yang menjalankan perintah
nvidia-smi
:export NODE_NAME=GPU_NODE_NAME cat <<EOF | kubectl create --kubeconfig=CLUSTER_KUBECONFIG -f - apiVersion: batch/v1 kind: Job metadata: name: test-job-gpu spec: template: spec: runtimeClassName: nvidia containers: - name: nvidia-test image: nvidia/cuda:12.0.0-base-ubuntu22.04 command: ["nvidia-smi"] resources: limits: nvidia.com/gpu: 1 nodeSelector: kubernetes.io/hostname: ${NODE_NAME} restartPolicy: Never EOF
Ganti
CLUSTER_KUBECONFIG
dengan jalur file kubeconfig cluster.Periksa log untuk melihat contoh output tugas:
kubectl logs job/test-job-gpu –kubeconfig=CLUSTER_KUBECONFIG
Outputnya mirip dengan hal berikut ini:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.183.01 Driver Version: 535.183.1 CUDA Veersion 12.2 | |-----------------------------------------+----------------------+----------------------| | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA A100 80GB PCIe Off | 00000000:25:00.0 Off | 0 | | N/A 30C P0 44W / 300W | 0MiB / 81920MiB | 0% Default | | | | Disabled | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+
Batasan
Batasan berikut berlaku saat Anda menggunakan Operator GPU NVIDIA dengan cluster yang dibuat dengan Google Distributed Cloud:
Jika Anda menginstal Operator GPU NVIDIA versi terbaru, konfigurasi containerd yang diterapkan oleh operator mungkin ditimpa selama update atau upgrade cluster atau node pool.
Versi Google Distributed Cloud yang didukung menginstal rilis LTS containerd 1.6, yang tidak mengaktifkan Antarmuka Perangkat Container (CDI). Jika Anda mengikuti petunjuk di Dukungan untuk Antarmuka Perangkat Penampung dalam dokumentasi NVIDIA, runtime
nvidia-cdi
mungkin tidak berfungsi. Cluster masih akan berfungsi seperti yang diharapkan, tetapi beberapa kemampuan CDI mungkin tidak tersedia.Node pool load balancer otomatis menjalankan tugas update setiap 7 hari. Tugas ini menimpa konfigurasi containerd, termasuk yang ditambahkan oleh Operator GPU NVIDIA.
Praktik terbaik
Untuk meminimalkan konflik dan masalah dengan konfigurasi NVIDIA, sebaiknya gunakan tindakan pencegahan berikut:
Cadangkan file konfigurasi containerd,
/etc/containerd/config.toml
, sebelum Anda mengupgrade atau mengupdate cluster atau kumpulan node. File ini berisi konfigurasi runtimenvidia
. Pulihkan fileconfig.toml
setelah upgrade atau update berhasil selesai dan mulai ulang containerd agar perubahan konfigurasi dapat diterapkan.Untuk mencegah potensi konflik atau masalah dengan konfigurasi containerd, jangan gunakan node GPU sebagai node load balancer (
loadBalancer.nodePoolSpec
).
Dapatkan Dukungan
Jika Anda memerlukan bantuan tambahan terkait penggunaan GPU dengan Google Distributed Cloud, hubungi Cloud Customer Care.
Untuk masalah terkait penyiapan atau penggunaan hardware GPU di sistem operasi Anda, hubungi vendor hardware Anda atau, jika berlaku, langsung hubungi Dukungan NVIDIA.
Masukan Anda sangat berharga.