Dukungan GPU untuk layanan

Halaman ini menjelaskan konfigurasi GPU untuk layanan Cloud Run Anda. GPU berfungsi dengan baik untuk workload inferensi AI, seperti model bahasa besar (LLM) atau kasus penggunaan non-AI intensif komputasi lainnya seperti transcoding video dan rendering 3D. Google menyediakan GPU NVIDIA L4 dengan memori GPU (VRAM) sebesar 24 GB, yang terpisah dari memori instance.

GPU di Cloud Run dikelola sepenuhnya, tanpa memerlukan driver atau library tambahan. Fitur GPU menawarkan ketersediaan on-demand tanpa perlu reservasi, mirip dengan cara kerja CPU on-demand dan memori on-demand di Cloud Run. Instance layanan Cloud Run yang telah dikonfigurasi untuk menggunakan GPU dapat diskalakan ke nol untuk menghemat biaya saat tidak digunakan.

Instance Cloud Run dengan GPU L4 yang terpasang dan driver yang telah diinstal sebelumnya dimulai dalam waktu sekitar 5 detik, dan pada saat itu proses yang berjalan di container Anda dapat mulai menggunakan GPU.

Anda dapat mengonfigurasi satu GPU per instance Cloud Run. Jika Anda menggunakan container sidecar, perhatikan bahwa GPU hanya dapat dilampirkan ke satu container.

Region yang didukung

  • asia-southeast1 (Singapura)
  • asia-south1 (Mumbai) . Region ini hanya tersedia berdasarkan undangan. Hubungi tim Akun Google Anda jika Anda tertarik dengan wilayah ini.
  • europe-west1 (Belgia) ikon daun CO2 Rendah
  • europe-west4 (Belanda) ikon daun CO2 Rendah
  • us-central1 (Iowa) ikon daun CO2 Rendah
  • us-east4 (North Virginia)

Jenis GPU yang didukung

Anda dapat menggunakan satu GPU L4 per instance Cloud Run. GPU L4 memiliki driver yang telah diinstal sebelumnya berikut:

  • Versi driver NVIDIA saat ini: 535.216.03 (CUDA 12.2)

Dampak harga

Lihat Harga Cloud Run untuk mengetahui detail harga GPU. Perhatikan persyaratan dan pertimbangan berikut:

  • Tidak ada biaya per permintaan. Anda harus menggunakan penagihan berbasis instance untuk menggunakan fitur GPU. Instance minimum dikenai biaya penuh meskipun saat tidak ada aktivitas.
  • Ada perbedaan biaya antara redundansi zona GPU dan redundansi non-zona. Lihat Harga Cloud Run untuk mengetahui detail harga GPU.
  • Anda harus menggunakan minimal 4 CPU dan memori 16 GiB.
  • GPU ditagih selama seluruh durasi siklus proses instance.
  • Saat Anda men-deploy layanan atau fungsi dari kode sumber dengan konfigurasi GPU menggunakan gcloud beta, Cloud Run menggunakan jenis mesin e2-highcpu-8, bukan jenis mesin e2-standard-2 default (Pratinjau). Jenis mesin yang lebih besar memberikan dukungan CPU yang lebih tinggi, dan bandwidth jaringan yang lebih tinggi sehingga menghasilkan waktu build yang lebih cepat.

Opsi redundansi zona GPU

Secara default, Cloud Run men-deploy layanan Anda di beberapa zona dalam suatu region. Arsitektur ini memberikan ketahanan yang melekat: jika suatu zona mengalami pemadaman layanan, Cloud Run akan otomatis merutekan traffic dari zona yang terpengaruh ke zona yang berfungsi dengan baik dalam region yang sama.

Saat menggunakan resource GPU, perlu diingat bahwa resource GPU memiliki batasan kapasitas tertentu. Selama gangguan zona, mekanisme failover standar untuk beban kerja GPU mengandalkan kapasitas GPU yang tidak digunakan dan memadai yang tersedia di zona responsif yang tersisa. Karena sifat GPU yang terbatas, kapasitas ini mungkin tidak selalu tersedia.

Untuk meningkatkan ketersediaan layanan yang dipercepat GPU selama gangguan zona, Anda dapat mengonfigurasi redundansi zona khusus untuk GPU:

  • Redundansi Zona Diaktifkan (default): Cloud Run mencadangkan kapasitas GPU untuk layanan Anda di beberapa zona. Hal ini secara signifikan meningkatkan probabilitas bahwa layanan Anda dapat berhasil menangani traffic yang dialihkan dari zona yang terpengaruh, sehingga menawarkan keandalan yang lebih tinggi selama kegagalan zona dengan biaya tambahan per detik GPU.

  • Redundansi Zonal Dinonaktifkan: Cloud Run mencoba failover untuk workload GPU dengan upaya terbaik. Traffic hanya dirutekan ke zona lain jika kapasitas GPU yang memadai tersedia pada saat itu. Opsi ini tidak menjamin kapasitas yang dicadangkan untuk skenario failover, tetapi menghasilkan biaya per detik GPU yang lebih rendah.

SLA

SLA untuk GPU Cloud Run bergantung pada apakah layanan menggunakan opsi redundansi zona atau non-redundansi zona. Lihat halaman SLA untuk mengetahui detailnya.

Meminta penambahan kuota

Project yang menggunakan GPU nvidia-l4 Cloud Run di suatu region untuk pertama kalinya akan otomatis diberi kuota 3 GPU (redundansi zona nonaktif) saat deployment pertama dibuat. Jika Anda memerlukan GPU Cloud Run tambahan, Anda harus meminta penambahan kuota untuk layanan Cloud Run Anda. Gunakan link yang disediakan di tombol berikut untuk meminta kuota yang Anda butuhkan.

Kuota diperlukan Link kuota
GPU dengan redundansi zona dinonaktifkan (harga lebih rendah) Meminta kuota GPU tanpa redundansi zona
GPU dengan redundansi zona diaktifkan (harga lebih tinggi) Meminta kuota GPU dengan redundansi zona

Untuk mengetahui informasi selengkapnya tentang cara meminta penambahan kuota, lihat Cara menambah kuota.

Sebelum memulai

Daftar berikut menjelaskan persyaratan dan batasan saat menggunakan GPU di Cloud Run:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Run API.

    Enable the API

  7. Minta kuota yang diperlukan.
  8. Lihat Praktik terbaik: Inferensi AI di Cloud Run dengan GPU untuk mendapatkan rekomendasi tentang cara membuat image container dan memuat model besar.
  9. Pastikan layanan Cloud Run Anda memiliki konfigurasi berikut:
  10. Peran yang diperlukan

    Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut pada layanan:

    • Cloud Run Developer (roles/run.developer) - layanan Cloud Run
    • Pengguna Akun Layanan (roles/iam.serviceAccountUser) - identitas layanan

    Jika Anda men-deploy layanan atau fungsi dari kode sumber, Anda juga harus memiliki peran tambahan yang diberikan kepada Anda di project dan akun layanan Cloud Build.

    Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

    Mengonfigurasi layanan Cloud Run dengan GPU

    Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

    Anda dapat menggunakan Google Cloud konsol, Google Cloud CLI, atau YAML untuk mengonfigurasi GPU.

    Konsol

    1. Di konsol Google Cloud , buka Cloud Run:

      Buka Cloud Run

    2. Pilih Services dari menu, lalu klik Deploy container untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit dan deploy revisi baru.

    3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, Volume, Jaringan, Keamanan untuk meluaskan halaman konfigurasi layanan.

    4. Klik tab Container.

      gambar

      • Konfigurasi CPU, memori, serentak, lingkungan eksekusi, dan pemeriksaan startup dengan mengikuti rekomendasi di Sebelum memulai.
      • Centang kotak GPU, lalu pilih jenis GPU dari menu GPU type, dan jumlah GPU dari menu Number of GPUs.
      • Secara default untuk layanan baru, redundansi zonal diaktifkan. Untuk mengubah setelan saat ini, centang kotak GPU untuk menampilkan opsi Redundansi GPU.
        • Pilih Tidak ada redundansi zona untuk menonaktifkan redundansi zona
        • Pilih Zonal redundancy untuk mengaktifkan redundansi zona.
    5. Klik Buat atau Deploy.

    gcloud

    Untuk membuat layanan dengan GPU yang diaktifkan, gunakan perintah gcloud run deploy:

    • Untuk men-deploy container:

        gcloud run deploy SERVICE \
          --image IMAGE_URL \
          --gpu 1

      Ganti kode berikut:

      • SERVICE: nama layanan Cloud Run Anda.
      • IMAGE_URL: referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • Untuk men-deploy kode sumber dan membiarkan Cloud Run menggunakan jenis mesin e2-highcpu-8 secara default dari Cloud Build, gunakan perintah gcloud beta run deploy:

        gcloud beta run deploy SERVICE \
          --source . \
          --gpu 1

    Untuk mengupdate konfigurasi GPU layanan, gunakan perintah gcloud run services update:

      gcloud run services update SERVICE \
        --image IMAGE_URL \
        --cpu CPU \
        --memory MEMORY \
        --no-cpu-throttling \
        --gpu GPU_NUMBER \
        --gpu-type GPU_TYPE \
        --max-instances MAX_INSTANCE
        --GPU_ZONAL_REDUNDANCY
        

    Ganti kode berikut:

    • SERVICE: nama layanan Cloud Run Anda.
    • IMAGE_URL: referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • CPU: jumlah CPU. Anda harus menentukan minimal 4 CPU.
    • MEMORY: jumlah memori. Anda harus menentukan setidaknya 16Gi (16 GiB).
    • GPU_NUMBER: nilai 1 (satu). Jika tidak ditentukan, tetapi GPU_TYPE ada, defaultnya adalah 1.
    • GPU_TYPE: jenis GPU. Jika tidak ditentukan, tetapi GPU_NUMBER ada, defaultnya adalah nvidia-l4 (nvidia L4 huruf kecil L, bukan nilai numerik empat belas).
    • MAX_INSTANCE: jumlah maksimum instance. Jumlah ini tidak boleh melebihi kuota GPU yang dialokasikan untuk project Anda.
    • GPU_ZONAL_REDUNDANCY: no-gpu-zonal-redundancy untuk menonaktifkan redundansi zona, atau gpu-zonal-redundancy untuk mengaktifkan redundansi zona.

    YAML

    1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

      gcloud run services describe SERVICE --format export > service.yaml
    2. Perbarui atribut nvidia.com/gpu: dan nodeSelector:
      run.googleapis.com/accelerator:
      :

      apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE
      spec:
        template:
          metadata:
            annotations:
              autoscaling.knative.dev/maxScale: 'MAX_INSTANCE'
              run.googleapis.com/cpu-throttling: 'false'
              run.googleapis.com/gpu-zonal-redundancy-disabled: 'GPU_ZONAL_REDUNDANCY'
          spec:
            containers:
            - image: IMAGE_URL
              ports:
              - containerPort: CONTAINER_PORT
                name: http1
              resources:
                limits:
                  cpu: 'CPU'
                  memory: 'MEMORY'
                  nvidia.com/gpu: '1'
              # Optional: use a longer startup probe to allow long starting containers
              startupProbe:
                failureThreshold: 1800
                periodSeconds: 1
                tcpSocket:
                  port: CONTAINER_PORT
                timeoutSeconds: 1
            nodeSelector:
              run.googleapis.com/accelerator: GPU_TYPE

      Ganti kode berikut:

      • SERVICE: nama layanan Cloud Run Anda.
      • IMAGE_URL: referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
      • CONTAINER_PORT: port container yang ditetapkan untuk layanan Anda.
      • CPU: jumlah CPU. Anda harus menentukan minimal 4 CPU.
      • MEMORY: jumlah memori. Anda harus menentukan setidaknya 16Gi (16 GiB).
      • GPU_TYPE: nilai nvidia-l4 (nvidia-L4 huruf kecil L, bukan nilai numerik empat belas).
      • MAX_INSTANCE: jumlah maksimum instance. Jumlah ini tidak boleh melebihi kuota GPU yang dialokasikan untuk project Anda.
      • GPU_ZONAL_REDUNDANCY: false untuk mengaktifkan redundansi zonal GPU, atau true untuk menonaktifkannya.
    3. Buat atau perbarui layanan menggunakan perintah berikut:

      gcloud run services replace service.yaml

    Terraform

    Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

    Tambahkan kode berikut ke resource google_cloud_run_v2_service di konfigurasi Terraform Anda:

    resource "google_cloud_run_v2_service" "default" {
      provider = google-beta
      name     = "SERVICE"
      location = "europe-west1"
    
      template {
        gpu_zonal_redundancy_disabled = "GPU_ZONAL_REDUNDANCY"
        containers {
          image = "IMAGE_URL"
          resources {
            limits = {
              "cpu" = "CPU"
              "memory" = "MEMORY"
              "nvidia.com/gpu" = "1"
            }
          }
        }
        node_selector {
          accelerator = "GPU_TYPE"
        }
      }
    }
    

    Ganti kode berikut:

    • SERVICE: nama layanan Cloud Run Anda.
    • GPU_ZONAL_REDUNDANCY: false untuk mengaktifkan redundansi zonal GPU, atau true untuk menonaktifkannya.
    • IMAGE_URL: referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • CPU: jumlah CPU. Anda harus menentukan minimal 4 CPU.
    • MEMORY: jumlah memori. Anda harus menentukan setidaknya 16Gi (16 GiB).
    • GPU_TYPE: nilai nvidia-l4 (nvidia-L4 huruf kecil L, bukan nilai numerik empat belas).

    Melihat setelan GPU

    Untuk melihat setelan GPU saat ini untuk layanan Cloud Run Anda:

    Konsol

    1. Di konsol Google Cloud , buka Cloud Run:

      Buka Cloud Run

    2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

    3. Klik tab Revisi.

    4. Di panel detail di sebelah kanan, setelan GPU dicantumkan di bagian tab Container.

    gcloud

    1. Gunakan perintah berikut:

      gcloud run services describe SERVICE
    2. Temukan setelan GPU dalam konfigurasi yang ditampilkan.

    Menghapus GPU

    Anda dapat menghapus GPU menggunakan Google Cloud konsol, Google Cloud CLI, atau YAML.

    Konsol

    1. Di konsol Google Cloud , buka Cloud Run:

      Buka Cloud Run

    2. Pilih Services dari menu, lalu klik Deploy container untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit dan deploy revisi baru.

    3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, Volume, Jaringan, Keamanan untuk meluaskan halaman konfigurasi layanan.

    4. Klik tab Container.

      gambar

      • Hapus centang pada kotak GPU.
    5. Klik Buat atau Deploy.

    gcloud

    Untuk menghapus GPU, tetapkan jumlah GPU ke 0 menggunakan perintah gcloud run services update:

      gcloud run services update SERVICE --gpu 0
      

    Ganti SERVICE dengan nama layanan Cloud Run Anda.

    YAML

    1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

      gcloud run services describe SERVICE --format export > service.yaml
    2. Hapus baris nvidia.com/gpu: dan nodeSelector: run.googleapis.com/accelerator: nvidia-l4.

    3. Buat atau perbarui layanan menggunakan perintah berikut:

      gcloud run services replace service.yaml

    Library

    Secara default, semua library driver NVIDIA L4 di-mount di bawah /usr/local/nvidia/lib64. Cloud Run secara otomatis menambahkan jalur ini ke variabel lingkungan LD_LIBRARY_PATH (yaitu ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64) dari container dengan GPU. Hal ini memungkinkan linker dinamis menemukan library driver NVIDIA. Linker menelusuri dan menyelesaikan jalur dalam urutan yang Anda cantumkan dalam variabel lingkungan LD_LIBRARY_PATH. Nilai yang Anda tentukan dalam variabel ini diprioritaskan daripada jalur library driver Cloud Run default /usr/local/nvidia/lib64.

    Jika Anda ingin menggunakan versi CUDA yang lebih tinggi dari 12.2, cara termudah adalah dengan mengandalkan image dasar NVIDIA yang lebih baru dengan paket kompatibilitas ke depan yang sudah diinstal. Opsi lainnya adalah menginstal paket kompatibilitas penerusan NVIDIA secara manual dan menambahkannya ke LD_LIBRARY_PATH. Lihat matriks kompatibilitas NVIDIA untuk menentukan versi CUDA mana yang kompatibel ke depan dengan versi driver NVIDIA yang diberikan (535.216.03).

    Tentang GPU dan instance maksimum

    Jumlah instance dengan GPU dibatasi dalam dua cara: