Tentang GPU di Google Kubernetes Engine (GKE)


Halaman ini membantu Anda mempertimbangkan pilihan untuk meminta GPU di Google Kubernetes Engine (GKE), termasuk:

Di GKE, cara Anda meminta hardware GPU bergantung pada apakah Anda menggunakan mode Autopilot atau Standard. Di Autopilot, Anda meminta hardware GPU dengan menentukan resource GPU dalam workload Anda. Dalam mode GKE Standard, Anda dapat memasang hardware GPU ke node dalam cluster, lalu mengalokasikan resource GPU ke workload dalam container yang berjalan di node tersebut. Untuk petunjuk mendetail tentang cara memasang dan menggunakan GPU dalam workload Anda, lihat Men-deploy workload GPU pada Autopilot atau Menjalankan GPU pada node pool Standard.

Hardware GPU yang tersedia untuk digunakan di GKE adalah subset GPU Compute Engine untuk workload komputasi. Hardware spesifik yang tersedia bergantung pada region Compute Engine atau zona cluster Anda. Untuk ketersediaan khusus, lihat region dan zona GPU.

GKE menawarkan beberapa fitur khusus GPU untuk meningkatkan pemanfaatan resource GPU yang efisien dari workload yang berjalan di node Anda, termasuk berbagi waktu, GPU multi-instance, dan GPU multi-instance dengan NVIDIA MPS.

Merencanakan kuota GPU

Kuota GPU Anda adalah jumlah GPU maksimum yang dapat berjalan di project Google Cloud. Untuk menggunakan GPU di cluster GKE, project Anda harus memiliki kuota GPU yang cukup.

Kuota GPU Anda setidaknya harus sama dengan jumlah total GPU yang ingin Anda jalankan di cluster. Jika mengaktifkan penskalaan cluster, Anda harus meminta agar kuota GPU setidaknya setara dengan jumlah maksimum node cluster Anda dikalikan dengan jumlah GPU per node.

Misalnya, jika Anda ingin menggunakan tiga node dengan masing-masing dua GPU, maka enam adalah kuota GPU yang diperlukan untuk project Anda.

Untuk meminta kuota GPU tambahan, ikuti petunjuk di Meminta batas kuota yang lebih tinggi, dengan menggunakan gpus sebagai metrik.

Memilih dukungan GPU menggunakan Autopilot atau Standard

GPU tersedia di cluster Autopilot dan Standard.

Praktik terbaik:

Gunakan cluster Autopilot untuk pengalaman Kubernetes yang dikelola sepenuhnya. Dalam mode Autopilot, GKE mengelola penginstalan driver, penskalaan node, isolasi Pod, dan penyediaan node.

Tabel berikut memberikan ringkasan perbedaan antara dukungan Autopilot dan GPU Standard:

Deskripsi Autopilot Standard
Meminta hardware GPU Tentukan resource GPU dalam workload Anda. Lampirkan hardware GPU ke node dalam cluster, lalu alokasikan resource GPU ke workload dalam container yang berjalan pada node tersebut.
Ketersediaan hardware GPU
  • NVIDIA T4
  • NVIDIA L4
  • NVIDIA A100 40GB
  • NVIDIA A100 80GB
  • NVIDIA H100 80GB
Semua jenis GPU yang didukung oleh Compute Engine
Memilih GPU Anda meminta jumlah dan jenis GPU dalam spesifikasi workload. Secara default, Autopilot menginstal driver default untuk versi GKE tersebut dan mengelola node Anda. Untuk memilih versi driver tertentu di Autopilot, lihat Pemilihan driver NVIDIA untuk Pod GPU Autopilot. Anda melakukan langkah-langkah yang dijelaskan di Menjalankan GPU di node pool Standard:
  1. Buat node pool dengan jenis GPU tertentu dan jenis mesin Compute Engine yang sesuai, lalu pilih driver yang akan diinstal.
  2. Instal driver GPU secara manual pada node jika Anda tidak menggunakan penginstalan otomatis.
  3. Minta jumlah GPU dalam spesifikasi Pod.
Meningkatkan penggunaan GPU
Keamanan GPU dengan GKE Sandbox GPU dengan GKE Sandbox
Harga Harga Pod GPU Autopilot Harga GPU Compute Engine

Untuk memilih mode operasi GKE yang paling sesuai untuk workload Anda, lihat Memilih mode operasi GKE.

Mengelola stack GPU melalui GKE atau Operator GPU NVIDIA di GKE

Secara default, GKE mengelola seluruh siklus proses node GPU, termasuk penginstalan driver GPU otomatis, memantau beban kerja GPU di GKE dengan NVIDIA Data Center GPU Manager (DCGM), dan strategi berbagi GPU.

Praktik terbaik:

Gunakan GKE untuk mengelola node GPU, karena GKE sepenuhnya mengelola siklus proses node GPU.

Mulai menggunakan GKE untuk pengelolaan node GPU dengan memilih salah satu opsi berikut:

Operator GPU NVIDIA dapat digunakan sebagai alternatif untuk dukungan GPU yang dikelola sepenuhnya di GKE pada image node Container-Optimized OS (COS) dan Ubuntu. Pilih opsi ini jika Anda mencari pengalaman yang konsisten di beberapa penyedia layanan cloud, Anda sudah menggunakan Operator GPU NVIDIA, atau jika Anda menggunakan software yang bergantung pada operator GPU NVIDIA. Untuk mempelajari lebih lanjut, lihat Mengelola stack GPU dengan NVIDIA GPU Operator.

Untuk memilih opsi terbaik bagi kasus penggunaan Anda, lihat tabel berikut yang membandingkan dua metode pengelolaan node GPU di GKE.

Deskripsi Menggunakan GKE untuk mengelola node GPU Menggunakan Operator GPU NVIDIA di GKE
Pengelolaan siklus proses node GPU (penginstalan, upgrade) Dikelola sepenuhnya oleh GKE. Dikelola oleh pengguna.
Penginstalan driver Penginstalan driver GPU otomatis dan manual. Penginstalan driver GPU secara manual.
Pemilih node cloud.google.com/gke-gpu=true nvidia.com/gpu=true
Strategi berbagi GPU
  • Layanan Multiproses: Tidak didukung.
Pemeriksaan kondisi node GPU
  • Memicu perbaikan node dalam 15 menit jika jumlah GPU yang dapat dialokasikan tidak sama dengan kapasitas dan perbaikan otomatis diaktifkan.
  • Memantau semua kode error secara default.
  • Memicu perbaikan node dalam 15 menit jika jumlah GPU yang dapat dialokasikan tidak sama dengan kapasitas dan perbaikan otomatis diaktifkan.
Metrik dan kemampuan observasi
  • Dengan mengaktifkan metrik sistem, metrik GPU berikut akan tersedia di Cloud Monitoring: siklus tugas, penggunaan memori, dan kapasitas memori.
  • DCGM mandiri yang disediakan oleh operator GPU.
  • Meskipun metrik sistem GPU GKE diaktifkan, metrik sistem terkait GPU tidak dikumpulkan, termasuk siklus tugas, penggunaan memori, dan kapasitas memori.

Mengoptimalkan penggunaan resource menggunakan fitur GPU di GKE

Secara default, Kubernetes hanya mendukung penetapan GPU secara keseluruhan ke container, tetapi GKE menyediakan fitur tambahan yang dapat Anda gunakan untuk mengoptimalkan penggunaan resource workload GPU.

Fitur berikut tersedia di GKE untuk mengurangi jumlah resource GPU yang kurang dimanfaatkan:

Fitur GPU
GPU multi-instance

Tersedia di: Autopilot dan Standard

Pisahkan satu GPU menjadi hingga tujuh instance yang dipisahkan hardware yang dapat ditetapkan sebagai GPU individual ke container pada sebuah node. Setiap container yang ditetapkan akan mendapatkan resource yang tersedia untuk instance tersebut.

GPU berbagi waktu

Tersedia di: Autopilot dan Standard

Menampilkan satu GPU dalam bentuk beberapa unit ke beberapa container pada sebuah node. Driver GPU beralih konteks dan mengalokasikan seluruh resource GPU ke setiap container yang ditetapkan sesuai kebutuhan dari waktu ke waktu.

NVIDIA MPS

Tersedia di: Standard

Membagikan satu GPU NVIDIA fisik di beberapa container. NVIDIA MPS adalah implementasi alternatif CUDA API yang kompatibel dengan biner yang dirancang untuk mengaktifkan aplikasi CUDA multiproses kooperatif secara transparan agar dapat berjalan secara serentak di satu perangkat GPU.

Mengakses library NVIDIA CUDA-X untuk aplikasi CUDA

CUDA adalah model pemrograman dan platform komputasi paralel NVIDIA untuk GPU. Untuk menggunakan aplikasi CUDA, gambar yang Anda gunakan harus memiliki library. Untuk menambahkan library NVIDIA CUDA-X, Anda dapat mem-build dan menggunakan image Anda sendiri dengan menyertakan nilai berikut dalam variabel lingkungan LD_LIBRARY_PATH di spesifikasi penampung:

  • /usr/local/cuda-CUDA_VERSION/lib64: lokasi library NVIDIA CUDA-X pada node.

    Ganti CUDA_VERSION dengan versi image CUDA-X yang Anda gunakan. Beberapa versi juga berisi utilitas debug di /usr/local/nvidia/bin. Untuk mengetahui detailnya, lihat image CUDA NVIDIA di DockerHub.

    Untuk memeriksa versi driver GPU minimum yang diperlukan untuk versi CUDA, lihat Toolkit CUDA dan Versi Driver yang Kompatibel.

  • /usr/local/nvidia/lib64: lokasi driver perangkat NVIDIA.
Pastikan versi patch GKE yang berjalan di node Anda menyertakan versi driver GPU yang kompatibel dengan versi CUDA yang Anda pilih. Untuk mengetahui daftar versi driver GPU yang terkait dengan versi GKE, silakan melihat halaman Container-Optimized OS terkait yang ditautkan di tabel versi GKE saat ini.

Dalam cluster Autopilot, GKE mengelola pemilihan dan penginstalan versi driver.

Memantau performa beban kerja node GPU

Jika cluster GKE Anda telah mengaktifkan metrik sistem, metrik berikut akan tersedia di Cloud Monitoring untuk memantau performa workload GPU Anda:

  • Siklus Tugas (container/accelerator/duty_cycle): Persentase waktu selama periode sampel terakhir (10 detik) di mana akselerator secara aktif berproses. Antara 1 dan 100.
  • Penggunaan Memori (container/accelerator/memory_used): Jumlah memori akselerator yang dialokasikan dalam byte.
  • Kapasitas Memori (container/accelerator/memory_total): Total memori akselerator dalam byte.

Anda dapat menggunakan dasbor standar untuk memantau cluster dengan node GPU. Untuk informasi selengkapnya, lihat Melihat metrik kemampuan observasi. Untuk informasi umum tentang pemantauan cluster dan resource-nya, lihat Observabilitas untuk GKE.

Melihat metrik penggunaan untuk workload

Anda dapat melihat metrik penggunaan GPU workload dari dasbor Beban kerja di Konsol Google Cloud.

Untuk melihat penggunaan GPU workload Anda, lakukan langkah-langkah berikut:

  1. Buka halaman Workload di Konsol Google Cloud.

    Buka Workload
  2. Pilih beban kerja

Dasbor Workload menampilkan diagram untuk penggunaan dan kapasitas memori GPU, serta siklus tugas GPU.

Melihat metrik NVIDIA Data Center GPU Manager (DCGM)

Anda dapat mengumpulkan dan memvisualisasikan metrik NVIDIA DCGM menggunakan Google Cloud Managed Service for Prometheus. Untuk cluster Autopilot, GKE menginstal driver. Untuk cluster Standard, Anda harus menginstal driver NVIDIA.

Untuk petunjuk cara men-deploy paket DCGM yang dikelola GKE, lihat Mengumpulkan dan melihat metrik NVIDIA Data Center GPU Manager (DCGM).

Menangani gangguan karena pemeliharaan node

Node GKE yang menghosting GPU tunduk pada peristiwa pemeliharaan atau gangguan lainnya yang dapat menyebabkan penonaktifan node. Di cluster GKE dengan control plane yang menjalankan versi 1.29.1-gke.1425000 dan yang lebih baru, Anda dapat mengurangi gangguan pada workload dengan mengonfigurasi GKE untuk menghentikan workload dengan baik.

Untuk memahami, mengonfigurasi, dan memantau peristiwa gangguan yang mungkin terjadi di node GKE yang menjalankan beban kerja AI/ML, lihat Mengelola gangguan node GKE untuk GPU dan TPU.

Langkah selanjutnya