Tentang GPU di Google Kubernetes Engine (GKE)


Halaman ini menjelaskan GPU di Google Kubernetes Engine (GKE) untuk membantu Anda memilih konfigurasi GPU yang optimal untuk workload Anda. Jika Anda ingin men-deploy workload GPU yang menggunakan Slurm, lihat Membuat cluster Slurm yang dioptimalkan untuk AI.

Anda dapat menggunakan GPU untuk mempercepat tugas yang intensif resource, seperti machine learning dan pemrosesan data. Informasi di halaman ini dapat membantu Anda melakukan hal berikut:

  • Pastikan ketersediaan GPU saat diperlukan.
  • Tentukan apakah akan menggunakan GPU dalam mode GKE Autopilot atau cluster mode GKE Standard.
  • Pilih fitur terkait GPU untuk menggunakan kapasitas GPU Anda secara efisien.
  • Pantau metrik node GPU.
  • Meningkatkan keandalan workload GPU dengan menangani gangguan secara lebih efektif.

Halaman ini ditujukan untuk Admin dan operator platform dan Engineer machine learning (ML) yang ingin memastikan bahwa infrastruktur akselerator dioptimalkan untuk workload Anda.

Sebelum membaca halaman ini, pastikan Anda memahami hal-hal berikut:

Pemilihan GPU di GKE

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

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

Halaman ini membantu Anda mempertimbangkan pilihan untuk meminta GPU di GKE, termasuk hal berikut:

Model GPU yang tersedia

Hardware GPU yang tersedia untuk digunakan di GKE adalah subset dari model GPU yang tersedia di Compute Engine. Hardware spesifik yang tersedia bergantung pada region Compute Engine atau zona cluster Anda. Untuk mengetahui informasi selengkapnya tentang ketersediaan tertentu, lihat Region dan zona GPU.

Untuk mengetahui informasi tentang harga GPU, lihat Google Cloud SKU dan halaman harga GPU.

Merencanakan kuota GPU

Kuota GPU Anda adalah jumlah GPU maksimum yang dapat berjalan di Google Cloud project Anda. Untuk menggunakan GPU di cluster GKE, project Anda harus memiliki kuota GPU yang cukup. Buka halaman Kuota untuk memastikan bahwa Anda memiliki cukup GPU yang tersedia dalam project Anda.

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 berencana menggunakan tiga node dengan dua GPU di setiap node, maka enam adalah kuota GPU yang diperlukan untuk project Anda.

Untuk meminta kuota GPU tambahan, ikuti petunjuk untuk meminta penyesuaian kuota, 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 mendapatkan pengalaman Kubernetes yang terkelola sepenuhnya. Dalam mode Autopilot, GKE mengelola penginstalan driver, penskalaan node, isolasi Pod, dan penyediaan node.

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

Deskripsi Autopilot Standar
Meminta hardware GPU Tentukan resource GPU dalam workload Anda. Pasang 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
  • NVIDIA H200 141GB
  • NVIDIA B200
  • NVIDIA GB200
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 pada 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. Meminta jumlah GPU dalam spesifikasi Pod.
Meningkatkan pemakaian GPU
Keamanan 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 NVIDIA GPU Operator di GKE

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

Praktik terbaik:

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

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

NVIDIA GPU Operator 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 NVIDIA GPU Operator, atau jika Anda menggunakan software yang bergantung pada NVIDIA GPU Operator. Untuk mempelajari lebih lanjut, lihat Mengelola stack GPU dengan NVIDIA GPU Operator.

Untuk memilih opsi terbaik untuk 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 secara otomatis dan manual. Penginstalan driver GPU secara manual.
Pemilih node cloud.google.com/gke-gpu=true nvidia.com/gpu=true
Strategi berbagi GPU
  • Layanan Multi-proses: 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 metrik sistem yang diaktifkan, metrik GPU berikut tersedia di Cloud Monitoring: siklus tugas, penggunaan memori, dan kapasitas memori.
  • DCGM yang dikelola sendiri 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 Anda.

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 ke beberapa container. NVIDIA MPS adalah penerapan alternatif yang kompatibel dengan biner dari CUDA API yang dirancang untuk secara transparan memungkinkan aplikasi CUDA multi-proses kooperatif berjalan secara bersamaan pada 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 membuat dan menggunakan image Anda sendiri dengan menyertakan nilai berikut dalam variabel lingkungan LD_LIBRARY_PATH di spesifikasi container Anda:

  • /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 NVIDIA CUDA di DockerHub.

    Untuk memeriksa versi driver GPU minimum yang diperlukan pada versi CUDA Anda, 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, lihat 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 workload 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.

Metrik ini berlaku di tingkat container (container/accelerator) dan tidak dikumpulkan untuk container yang dijadwalkan di GPU yang menggunakan berbagi waktu GPU atau NVIDIA MPS.

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

Melihat metrik penggunaan untuk beban kerja

Anda dapat melihat metrik penggunaan GPU workload dari dasbor Workloads di konsol Google Cloud .

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

  1. Buka halaman Workloads di konsol Google Cloud .

    Buka Workloads
  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 mengetahui 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 lain yang dapat menyebabkan penonaktifan node. Di cluster GKE dengan bidang kontrol yang menjalankan versi 1.29.1-gke.1425000 dan yang lebih baru, Anda dapat mengurangi gangguan pada workload dengan mengonfigurasi GKE untuk menghentikan workload Anda dengan benar.

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

Langkah berikutnya