Auf dieser Seite wird die GPU-Konfiguration für Ihre Cloud Run-Worker-Pools beschrieben. Google stellt NVIDIA L4-GPUs mit 24 GB GPU-Arbeitsspeicher (VRAM) bereit, der vom Instanzarbeitsspeicher getrennt ist.
GPUs in Cloud Run werden vollständig verwaltet. Es sind keine zusätzlichen Treiber oder Bibliotheken erforderlich. Die GPU-Funktion bietet On-Demand-Verfügbarkeit ohne erforderliche Reservierungen, ähnlich wie bei On-Demand-CPUs und On-Demand-Arbeitsspeicher in Cloud Run.
Cloud Run-Instanzen mit einer angehängten L4-GPU mit vorinstallierten Treibern starten in etwa 5 Sekunden. Danach können die Prozesse, die in Ihrem Container ausgeführt werden, die GPU verwenden.
Sie können eine GPU pro Cloud Run-Instanz konfigurieren. Wenn Sie Sidecar-Container verwenden, kann die GPU nur an einen Container angehängt werden.
Unterstützte Regionen
asia-southeast1
(Singapur)asia-south1
(Mumbai) . Diese Region ist nur auf Einladung verfügbar. Wenden Sie sich an Ihr Google-Konten-Team, wenn Sie an dieser Region interessiert sind.europe-west1
(Belgien)Niedriger CO2-Ausstoß
europe-west4
(Niederlande)Niedriger CO2-Ausstoß
us-central1
(Iowa)Niedriger CO2-Ausstoß
us-east4
(Northern Virginia)
Unterstützte GPU-Typen
Sie können eine L4-GPU pro Cloud Run-Instanz verwenden. Auf einer L4-GPU sind die folgenden Treiber vorinstalliert:
- Die aktuelle NVIDIA-Treiberversion: 535.216.03 (CUDA 12.2)
Auswirkungen auf die Kosten
Weitere Informationen zu GPU-Preisen finden Sie unter Cloud Run – Preise. Beachten Sie die folgenden Anforderungen und Hinweise:
- Es gibt einen Kostenunterschied zwischen zonaler GPU-Redundanz und nicht zonaler Redundanz. Weitere Informationen zu GPU-Preisen finden Sie unter Cloud Run – Preise.
- GPU-Worker-Pools können nicht automatisch skaliert werden. Die GPU wird Ihnen auch dann in Rechnung gestellt, wenn auf ihr keine Prozesse ausgeführt werden, solange die GPU-Instanz des Worker-Pools ausgeführt wird.
- CPU und Arbeitsspeicher für Worker-Pools werden anders berechnet als für Dienste und Jobs. Die GPU-SKU wird jedoch genauso abgerechnet wie Dienste und Jobs.
- Sie müssen mindestens 4 CPUs und 16 GiB Arbeitsspeicher verwenden.
- Die GPU wird für die gesamte Dauer des Instanzlebenszyklus in Rechnung gestellt.
Optionen für die zonale GPU-Redundanz
Standardmäßig stellt Cloud Run Ihren Worker-Pool in mehreren Zonen innerhalb einer Region bereit. Diese Architektur bietet eine inhärente Stabilität: Wenn es in einer Zone zu einem Ausfall kommt, leitet Cloud Run den Traffic automatisch von der betroffenen Zone zu fehlerfreien Zonen in derselben Region um.
Wenn Sie mit GPU-Ressourcen arbeiten, sollten Sie die spezifischen Kapazitätsbeschränkungen von GPU-Ressourcen beachten. Bei einem Zonenausfall hängt der Standard-Failover-Mechanismus für GPU-Arbeitslasten davon ab, dass in den verbleibenden fehlerfreien Zonen genügend ungenutzte GPU-Kapazität verfügbar ist. Aufgrund der begrenzten Verfügbarkeit von GPUs ist diese Kapazität möglicherweise nicht immer verfügbar.
Um die Verfügbarkeit Ihrer GPU-beschleunigten Worker-Pools bei zonalen Ausfällen zu erhöhen, können Sie die zonale Redundanz speziell für GPUs konfigurieren:
Zonale Redundanz aktiviert (Standard): Cloud Run reserviert GPU-Kapazität für Ihren Worker-Pool in mehreren Zonen. Dadurch steigt die Wahrscheinlichkeit, dass Ihr Worker-Pool den aus einer betroffenen Zone umgeleiteten Traffic erfolgreich verarbeiten kann, was die Zuverlässigkeit bei zonalen Ausfällen erhöht. Die Kosten pro GPU-Sekunde sind jedoch höher.
Zonale Redundanz deaktiviert: Cloud Run versucht, für GPU-Arbeitslasten auf Best-Effort-Basis ein Failover durchzuführen. Der Traffic wird nur dann an andere Zonen weitergeleitet, wenn zu diesem Zeitpunkt genügend GPU-Kapazität verfügbar ist. Diese Option garantiert keine reservierte Kapazität für Failover-Szenarien, führt aber zu niedrigeren Kosten pro GPU-Sekunde.
SLA
Die SLA für Cloud Run-GPUs hängt davon ab, ob für den Worker-Pool die Option für zonale oder nicht zonale Redundanz verwendet wird. Weitere Informationen finden Sie auf der SLA-Seite.
Kontingenterhöhung anfordern
Projekten, in denen Cloud Run-nvidia-l4
-GPUs in einer Region zum ersten Mal verwendet werden, wird automatisch ein GPU-Kontingent von 3 (zonale Redundanz deaktiviert) gewährt, wenn die erste Bereitstellung erstellt wird.
Wenn Sie zusätzliche Cloud Run-GPUs benötigen, müssen Sie eine Kontingenterhöhung für Ihren Cloud Run-Worker-Pool anfordern. Über die Links in den folgenden Schaltflächen können Sie das benötigte Kontingent anfordern.
Kontingent erforderlich | Kontingentlink |
---|---|
GPU mit deaktivierter zonaler Redundanz (niedrigerer Preis) | GPU-Kontingent ohne zonale Redundanz anfordern |
GPU mit aktivierter zonaler Redundanz (höherer Preis) | GPU-Kontingent mit zonaler Redundanz anfordern |
Weitere Informationen zum Anfordern von Kontingenterhöhungen finden Sie unter Kontingent erhöhen.
Hinweise
In der folgenden Liste werden die Anforderungen und Einschränkungen bei der Verwendung von GPUs in Cloud Run beschrieben:
- 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.
-
Verify 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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run API.
- Erforderliches Kontingent anfordern
- Empfehlungen zum Erstellen Ihres Container-Images und zum Laden großer Modelle finden Sie unter GPU-Best Practices: Cloud Run-Worker-Pools mit GPUs.
- Achten Sie darauf, dass Ihr Cloud Run-Worker-Pool die folgenden Konfigurationen hat:
- Konfigurieren Sie die Abrechnungseinstellungen für die instanzbasierte Abrechnung. Beachten Sie, dass Worker-Pools, für die die instanzbasierte Abrechnung festgelegt ist, trotzdem auf null skaliert werden können.
- Konfigurieren Sie mindestens 4 CPUs für Ihren Worker-Pool. Es werden 8 CPUs empfohlen.
- Konfigurieren Sie mindestens 16 GiB Arbeitsspeicher. 32 GiB werden empfohlen.
- Ermitteln Sie eine optimale maximale Nebenläufigkeit für die GPU-Nutzung und legen Sie sie fest.
-
Cloud Run-Entwickler (
roles/run.developer
) – der Cloud Run-Worker-Pool - Dienstkontonutzer (
roles/iam.serviceAccountUser
) - die Dienstidentität Rufen Sie in der Google Cloud Console Cloud Run auf:
Wählen Sie im Menü Worker-Pools aus und klicken Sie auf Container bereitstellen, um einen neuen Worker-Pool zu konfigurieren. Wenn Sie einen vorhandenen Worker-Pool konfigurieren möchten, klicken Sie auf den Worker-Pool und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Worker-Pool konfigurieren, füllen Sie die Seite mit den anfänglichen Worker-Pool-Einstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Worker-Pool-Konfiguration zu maximieren.
Klicken Sie auf den Tab Container.
- Konfigurieren Sie CPU, Arbeitsspeicher, Nebenläufigkeit, Ausführungsumgebung und Startprüfung gemäß den Empfehlungen unter Vorbereitung.
- Aktivieren Sie das GPU-Kästchen und wählen Sie dann im Menü GPU-Typ den GPU-Typ und im Menü Anzahl der GPUs die Anzahl der GPUs aus.
- Die zonale Redundanz ist standardmäßig aktiviert. Wenn Sie die aktuelle Einstellung ändern möchten, klicken Sie das Kästchen „GPU“ an, um die Optionen für GPU-Redundanz aufzurufen.
- Wählen Sie Keine zonale Redundanz aus, um die zonale Redundanz zu deaktivieren.
- Wählen Sie Zonale Redundanz aus, um die zonale Redundanz zu aktivieren.
Klicken Sie auf Erstellen oder Bereitstellen.
- WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
- IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B.
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
- IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B.
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - CPU: die Anzahl der CPUs. Sie müssen mindestens
4
CPUs angeben. - MEMORY: die Größe des Arbeitsspeichers. Sie müssen mindestens
16Gi
(16 GiB) angeben. - GPU_NUMBER: der Wert
1
(eins). Wenn dieser Wert nicht angegeben ist, aber ein GPU_TYPE vorhanden ist, ist der Standardwert1
. - GPU_TYPE: Der GPU-Typ. Wenn dieser Wert nicht angegeben ist, aber eine GPU_NUMBER vorhanden ist, ist der Standardwert
nvidia-l4
(nvidiaL
4 Kleinbuchstabe L, nicht numerischer Wert vierzehn). - GPU_ZONAL_REDUNDANCY:
no-gpu-zonal-redundancy
zum Deaktivieren der zonalen Redundanz odergpu-zonal-redundancy
zum Aktivieren der zonalen Redundanz. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Aktualisieren Sie das Attribut
nvidia.com/gpu:
undnodeSelector:
:
run.googleapis.com/accelerator:apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: metadata: annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/gpu-zonal-redundancy-disabled: 'GPU_ZONAL_REDUNDANCY' spec: containers: - image: IMAGE_URL resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: '1' nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
Ersetzen Sie Folgendes:
- WORKER_POOL: Der Name Ihres Cloud Run-Worker-Pools.
- IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B.
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - CPU: die Anzahl der CPUs. Sie müssen mindestens
4
CPUs angeben. - MEMORY: die Größe des Arbeitsspeichers. Sie müssen mindestens
16Gi
(16 GiB) angeben. - GPU_TYPE: der Wert
nvidia-l4
(nvidia-L
4 Kleinbuchstabe L, nicht numerischer Wert vierzehn). - GPU_ZONAL_REDUNDANCY:
false
, um die zonale GPU-Redundanz zu aktivieren, odertrue
, um sie zu deaktivieren.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
- SERVICE: Der Name Ihres Cloud Run-Dienstes.
- GPU_ZONAL_REDUNDANCY:
false
, um die zonale GPU-Redundanz zu aktivieren, odertrue
, um sie zu deaktivieren. - IMAGE_URL: Ein Verweis auf das Container-Image, das den Worker-Pool enthält, z. B.
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - CPU: die Anzahl der CPUs. Sie müssen mindestens
4
CPUs angeben. - MEMORY: die Größe des Arbeitsspeichers. Sie müssen mindestens
16Gi
(16 GiB) angeben. - GPU_TYPE: der Wert
nvidia-l4
(nvidia-L
4 Kleinbuchstabe L, nicht numerischer Wert vierzehn). Rufen Sie in der Google Cloud Console die Seite „Cloud Run-Worker-Pools“ auf:
Klicken Sie auf den gewünschten Worker-Pool, um die Seite Worker-Pooldetails zu öffnen.
Klicken Sie auf Neue Überarbeitung bearbeiten und bereitstellen.
Suchen Sie in den Konfigurationsdetails nach der GPU-Einstellung.
Verwenden Sie den folgenden Befehl:
gcloud beta run worker-pools describe WORKER_POOL
Suchen Sie in der zurückgegebenen Konfiguration nach der GPU-Einstellung.
Rufen Sie in der Google Cloud Console Cloud Run auf:
Wählen Sie im Menü Worker-Pools aus und klicken Sie auf Container bereitstellen, um einen neuen Worker-Pool zu konfigurieren. Wenn Sie einen vorhandenen Worker-Pool konfigurieren möchten, klicken Sie auf den Worker-Pool und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Worker-Pool konfigurieren, füllen Sie die Seite mit den anfänglichen Worker-Pool-Einstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Worker-Pool-Konfiguration zu maximieren.
Klicken Sie auf den Tab Container.
- Entfernen Sie das Häkchen aus dem Kästchen für die GPU.
- Klicken Sie auf Erstellen oder Bereitstellen.
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Löschen Sie die Zeilen
nvidia.com/gpu:
undnodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Workerpools zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Workerpools benötigen:
Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Workerpool mitGoogle Cloud -APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.
Cloud Run-Worker-Pool mit GPU konfigurieren
Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.
Sie können die Google Cloud Console, die Google Cloud CLI oder YAML verwenden, um GPUs zu konfigurieren.
Konsole
gcloud
Verwenden Sie den Befehl gcloud run deploy, um einen Dienst mit aktivierter GPU zu erstellen:
gcloud beta run worker-pools deploy WORKER_POOL \ --image IMAGE_URL \ --gpu 1
Ersetzen Sie Folgendes:
Verwenden Sie den Befehl gcloud run services update, um die GPU-Konfiguration für einen Dienst zu aktualisieren:
gcloud beta run worker-pools update WORKER_POOL \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --GPU_ZONAL_REDUNDANCY
Ersetzen Sie Folgendes:
YAML
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
resource "google_cloud_run_v2_worker_pool" "default" {
provider = google-beta
name = "WORKER_POOL"
location = "REGION"
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"
}
}
}
Ersetzen Sie Folgendes:
GPU-Einstellungen aufrufen
So rufen Sie die aktuellen GPU-Einstellungen für Ihren Cloud Run-Worker-Pool auf:
Konsole
gcloud
GPU entfernen
Sie können GPUs über die Google Cloud Console, die Google Cloud CLI oder YAML entfernen.
Konsole
gcloud
Wenn Sie eine GPU entfernen möchten, legen Sie die Anzahl der GPUs auf 0
fest:
gcloud beta run worker-pools update WORKER_POOL --gpu 0
Ersetzen Sie WORKER_POOL durch den Namen Ihres Cloud Run-Worker-Pools.
YAML
Bibliotheken
Standardmäßig werden alle NVIDIA L4-Treiberbibliotheken unter /usr/local/nvidia/lib64
bereitgestellt. Cloud Run hängt diesen Pfad automatisch an die Umgebungsvariable LD_LIBRARY_PATH
(d.h. ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64
) des Containers mit der GPU an. Dadurch kann der dynamische Linker die NVIDIA-Treiberbibliotheken finden. Der Linker sucht und löst Pfade in der Reihenfolge, die Sie in der Umgebungsvariablen LD_LIBRARY_PATH
angeben. Alle Werte, die Sie in dieser Variablen angeben, haben Vorrang vor dem Standardpfad für Cloud Run-Treiberbibliotheken /usr/local/nvidia/lib64
.
Wenn Sie eine CUDA-Version höher als 12.2 verwenden möchten, ist es am einfachsten, von einem neueren NVIDIA-Basis-Image abzuhängen, auf dem bereits Pakete für die Aufwärtskompatibilität installiert sind. Eine weitere Möglichkeit besteht darin, die NVIDIA-Pakete für die Aufwärtskompatibilität manuell zu installieren und sie zu LD_LIBRARY_PATH
hinzuzufügen. Sehen Sie sich die Kompatibilitätsmatrix von NVIDIA an, um zu ermitteln, welche CUDA-Versionen mit der bereitgestellten NVIDIA-Treiberversion (535.216.03) aufwärtskompatibel sind.