Halaman ini menjelaskan konfigurasi GPU untuk tugas Cloud Run Anda. GPU berfungsi dengan baik untuk workload AI seperti, melatih model bahasa besar (LLM) menggunakan framework pilihan Anda, melakukan inferensi batch atau offline pada LLM, dan menangani tugas intensif komputasi lainnya seperti pemrosesan video dan rendering grafis sebagai tugas latar belakang. 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 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)CO2 Rendah
europe-west4
(Belanda)CO2 Rendah
us-central1
(Iowa)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:
- GPU untuk tugas mengikuti Harga tanpa redundansi zona (dalam pratinjau).
- Anda harus menggunakan minimal 4 CPU dan memori 16 GiB.
- GPU ditagih selama seluruh durasi siklus proses instance.
Redundansi non-zonal GPU
Tugas Cloud Run menyediakan dukungan redundansi non-zonal (dalam pratinjau) untuk instance yang diaktifkan GPU. Jika redundansi non-zonal diaktifkan, Cloud Run mencoba melakukan failover untuk tugas yang mendukung GPU dengan upaya terbaik. Cloud Run merutekan eksekusi tugas ke zona lain hanya 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.
Meminta penambahan kuota
Jika project Anda tidak memiliki kuota GPU, deploy layanan Cloud Run untuk otomatis menerima pemberian kuota GPU 3 nvidia-l4
(redundansi zona nonaktif) untuk region tersebut. Perhatikan bahwa pemberian kuota otomatis ini bergantung pada ketersediaan berdasarkan kapasitas CPU dan memori Anda. Saat Anda menghapus layanan yang tidak digunakan, kuota yang dialokasikan tetap tidak berubah.
Jika Anda memerlukan GPU Cloud Run tambahan untuk tugas, minta penambahan kuota.
Jumlah maksimum instance (tugas) pekerjaan GPU yang dapat dijalankan secara paralel dibatasi oleh kuota berikut:
Kuota instance GPU tugas tanpa redundansi zona. Secara default, kuota ini ditetapkan ke
5
.
Nilai paralelisme harus lebih kecil dari kuota GPU tanpa redundansi zona atau kuota instance GPU tugas tanpa redundansi zona, bergantung pada kuota mana yang lebih ketat.
Sebelum memulai
Daftar berikut menjelaskan persyaratan dan batasan saat menggunakan GPU di Cloud Run:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run API.
- Lihat Praktik terbaik: Tugas Cloud Run dengan GPU untuk mengoptimalkan performa saat menggunakan tugas Cloud Run dengan GPU.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi tugas Cloud Run, minta administrator Anda untuk memberi Anda peran IAM berikut pada tugas:
-
Cloud Run Developer (
roles/run.developer
) - tugas Cloud Run -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) - identitas layanan
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika tugas 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 tugas Cloud Run dengan GPU
Anda dapat menggunakan Google Cloud konsol, Google Cloud CLI, atau YAML untuk mengonfigurasi GPU.
gcloud
Untuk membuat tugas dengan GPU yang diaktifkan, gunakan perintah gcloud beta run jobs create:
gcloud beta run jobs create JOB_NAME --image=IMAGE --gpu=1
Ganti:
- JOB_NAME dengan nama tugas Cloud Run Anda.
- IMAGE_URL dengan referensi ke
image container, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
.
Untuk mengupdate konfigurasi GPU untuk tugas, gunakan perintah gcloud beta run jobs update:
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --parallelism PARALLELISM
Ganti:
- JOB_NAME dengan nama tugas Cloud Run Anda.
- IMAGE_URL dengan referensi ke
image container, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - CPU dengan minimal
4
CPU untuk tugas Anda. Nilai yang direkomendasikan adalah8
. - MEMORY dengan minimum
16Gi
(16 GiB). Nilai yang direkomendasikan adalah32Gi
. - GPU_NUMBER dengan nilai
1
(satu). Jika tidak ditentukan, tetapi GPU_TYPE ada, defaultnya adalah1
. - GPU_TYPE dengan jenis GPU. Jika tidak ditentukan, tetapi GPU_NUMBER ada, defaultnya adalah
nvidia-l4
(nvidiaL
4 huruf kecil L, bukan nilai numerik empat belas). - PARALLELISM dengan nilai bilangan bulat yang kurang dari nilai terendah batas kuota yang berlaku yang Anda alokasikan untuk project Anda.
YAML
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Perbarui atribut
nvidia.com/gpu
,annotations: run.googleapis.com/launch-stage
untuk tahap peluncuran, dannodeSelector:
:
run.googleapis.com/acceleratorapiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: template: spec: containers: - image: IMAGE_URL limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
Ganti:
- JOB_NAME dengan nama tugas Cloud Run Anda.
- IMAGE_URL dengan referensi ke
image container, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
- CPU dengan jumlah CPU. Anda harus menentukan minimal
4
CPU. - MEMORY dengan jumlah memori. Anda harus menentukan setidaknya
16Gi
(16 GiB). - GPU_NUMBER dengan nilai
1
(satu) karena kami hanya mendukung pemasangan satu GPU per instance Cloud Run. - GPU_TYPE dengan nilai
nvidia-l4
(nvidia-L
4 huruf kecil L, bukan nilai numerik empat belas).
Buat atau perbarui tugas menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Melihat setelan GPU
Untuk melihat setelan GPU saat ini untuk tugas Cloud Run Anda:
gcloud
Gunakan perintah berikut:
gcloud run jobs describe JOB_NAME
Temukan setelan GPU dalam konfigurasi yang ditampilkan.
Menghapus GPU
Anda dapat menghapus GPU menggunakan Google Cloud CLI atau YAML.
gcloud
Untuk menghapus GPU, tetapkan jumlah GPU ke 0
menggunakan perintah
gcloud beta run jobs update:
gcloud beta run jobs update JOB_NAME --gpu 0
Ganti JOB_NAME dengan nama tugas Cloud Run Anda.
YAML
Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Hapus baris
nvidia.com/gpu:
dannodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Buat atau perbarui tugas menggunakan perintah berikut:
gcloud run jobs replace job.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 paralelisme
Jika Anda menjalankan tugas paralel dalam eksekusi tugas, tentukan dan tetapkan nilai
paralelisme ke nilai yang lebih rendah dari nilai terendah
batas kuota yang berlaku yang Anda alokasikan untuk project Anda.
Secara default, kuota instance tugas GPU ditetapkan ke 5
untuk tugas yang berjalan secara paralel. Untuk meminta penambahan kuota, lihat Cara menambah kuota. Tugas GPU dimulai secepat mungkin dan
dapat mencapai maksimum yang bervariasi, bergantung pada jumlah kuota GPU yang Anda alokasikan untuk
project dan region yang dipilih. Deployment Cloud Run akan gagal jika Anda menyetel paralelisme ke lebih dari batas kuota GPU.
Untuk menghitung kuota GPU yang digunakan tugas Anda per eksekusi, kalikan jumlah GPU per tugas dengan nilai paralelisme. Misalnya, jika Anda memiliki kuota GPU sebesar 10, dan men-deploy tugas Cloud Run dengan --gpu=1
, --parallelism=10
, maka tugas Anda akan menggunakan semua kuota GPU 10. Atau, jika Anda men-deploy dengan --gpu=1
, --parallelism=20
, deployment akan gagal.
Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik: Tugas Cloud Run dengan GPU.