Tentang GPU di GKE


Halaman ini menjelaskan GPU di Google Kubernetes Engine (GKE), termasuk kasus penggunaan, fitur dan jenis GPU yang didukung, serta perbedaan antara mode Autopilot dan Standard. Untuk mendapatkan petunjuk cara memasang dan menggunakan GPU di workload Anda, lihat Men-deploy workload GPU pada Autopilot atau Menjalankan GPU pada node pool Standard.

Ketersediaan GPU di GKE

Di GKE Autopilot, Anda meminta hardware GPU dengan menentukan resource GPU dalam workload Anda. Di GKE Standard, Anda dapat melampirkan hardware GPU ke node di cluster Anda, lalu mengalokasikan resource GPU ke beban kerja dalam container yang berjalan pada node tersebut. Anda dapat menggunakan akselerator ini untuk melakukan tugas-tugas yang membutuhkan banyak resource, seperti berikut:

  • Inferensi dan pelatihan machine learning (ML)
  • Pemrosesan data skala besar

Hardware GPU yang tersedia untuk digunakan di GKE adalah subset GPU Compute Engine untuk workload komputasi. GKE menawarkan beberapa fitur khusus GPU, seperti berbagi waktu dan GPU multi-instance, yang dapat meningkatkan efisiensi yang digunakan workload bersama resource GPU pada node Anda.

Hardware spesifik yang tersedia bergantung pada region Compute Engine atau zona cluster Anda. Untuk ketersediaan khusus, lihat region dan zona GPU.

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, project Anda memerlukan setidaknya enam kuota GPU.

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

Dukungan GPU dalam Autopilot dan Standard

GPU tersedia di cluster Autopilot dan Standard. Tabel berikut menjelaskan perbedaan antara dukungan Autopilot dan GPU Standard:

Deskripsi Autopilot Standard
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 kuantitas dan jenis GPU dalam spesifikasi beban kerja Anda. Secara default, Autopilot menginstal driver default untuk versi GKE tersebut dan mengelola node Anda. Untuk memilih versi driver tertentu di Autopilot, lihat Pilihan driver NVIDIA untuk Pod GPU Autopilot
  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

Untuk mendapatkan petunjuk, lihat Menjalankan GPU pada node pool Standard

Fitur GPU tambahan
Harga Harga Pod GPU Autopilot Harga GPU Compute Engine

Dalam mode Autopilot, GKE mengelola penginstalan driver, penskalaan node, isolasi Pod, dan penyediaan node. Sebaiknya pilih mode cluster untuk GPU Anda berdasarkan fleksibilitas dan tingkat kontrol yang Anda inginkan atas node Anda, sebagai berikut:

  • Jika Anda ingin berfokus men-deploy workload berbasis GPU tanpa perlu mengelola node, dan jika jenis GPU yang tersedia sesuai dengan kebutuhan Anda, gunakan Autopilot.
  • Jika Anda lebih suka mengelola node, penskalaan, isolasi, dan mesin dasar sendiri, gunakan Standard.

Fitur GPU di GKE

GKE menyediakan fitur tambahan yang dapat Anda gunakan untuk mengoptimalkan penggunaan resource workload GPU, sehingga Anda tidak membuang resource GPU pada node Anda. Secara default, Kubernetes hanya mendukung penetapan GPU secara keseluruhan ke container, meskipun container hanya memerlukan sebagian kecil dari GPU yang tersedia, atau jika container tidak selalu menggunakan resource.

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

Fitur GPU
GPU berbagi waktu

Tersedia di: Autopilot dan Standar

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.

GPU multi-instance

Tersedia di: Autopilot dan Standar

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.

Tentang library NVIDIA CUDA-X

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

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, gunakan salah satu metode berikut:

  • Direkomendasikan: Gunakan image dengan library NVIDIA CUDA-X yang telah diinstal sebelumnya. Misalnya, Anda dapat menggunakan Deep Learning Containers. Container ini menginstal lebih dulu framework data science kunci, library, dan alat NVIDIA CUDA-X. Atau, image NVIDIA CUDA hanya berisi library NVIDIA CUDA-X.
  • Buat dan gunakan image Anda sendiri. Dalam hal ini, sertakan nilai berikut pada variabel lingkungan LD_LIBRARY_PATH di spesifikasi container Anda:
    1. /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.
    2. /usr/local/nvidia/lib64: lokasi driver perangkat NVIDIA.

Untuk memeriksa versi driver GPU minimum yang diperlukan pada versi CUDA, lihat Toolkit CUDA dan Versi Driver yang Kompatibel. 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.

Memantau 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 mengetahui informasi selengkapnya, baca Melihat metrik kemampuan observasi. Untuk informasi umum tentang pemantauan cluster Anda dan resource-nya, lihat Kemampuan observasi 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.

Menangani gangguan akibat pemeliharaan node

Node GKE yang menghosting GPU mungkin mengalami peristiwa pemeliharaan atau gangguan lain yang dapat menyebabkan penonaktifan node. Anda dapat mengurangi gangguan pada workload yang berjalan di cluster GKE dengan bidang kontrol yang menjalankan versi 1.29.1-gke.1425000 dan yang lebih baru. GKE memberi tahu node tentang adanya penonaktifan dalam waktu dekat dengan mengirimkan sinyal SIGTERM ke node hingga 60 menit sebelum penghapusan.

Anda dapat mengonfigurasi GKE untuk menghentikan workload secara halus. Dalam manifes Pod, tetapkan kolom spec.terminationGracePeriodSeconds ke nilai hingga maksimum 3600 detik (satu jam). GKE melakukan upaya terbaik untuk menghentikan Pod ini dengan lancar dan menjalankan tindakan penghentian yang Anda tentukan, misalnya, menyimpan status pelatihan. GKE mengikuti konfigurasi apa pun hingga 60 menit untuk setelan PodDisruptionBudget atau terminationGracePeriodSeconds.

Untuk mempelajari lebih lanjut, lihat Mengonfigurasi penghentian halus node GPU.

Langkah selanjutnya