Auf dieser Seite wird die GPU-Konfiguration für Ihren Cloud Run-Dienst beschrieben. GPUs eignen sich gut für KI-Inferenzarbeitslasten wie Large Language Models (LLMs) oder andere rechenintensive Anwendungsfälle ohne KI wie Videotranscodierung und 3D-Rendering. Google stellt NVIDIA L4-GPUs mit 24 GB GPU-Speicher (VRAM) zur Verfügung, der vom Instanzspeicher getrennt ist.
Wenn Sie die GPU-Funktion verwenden möchten, müssen Sie ein Total Nvidia L4 GPU allocation, per project per region
-Kontingent anfordern.
Weitere Informationen finden Sie unter Vorbereitung.
Die GPU in Cloud Run wird vollständig verwaltet und 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. Instanzen eines Cloud Run-Dienstes, der für die Verwendung einer GPU konfiguriert wurde, können bei Nichtnutzung auf null skaliert werden, um Kosten zu sparen.
Cloud Run-Instanzen mit einer angeschlossenen L4-GPU mit vorinstallierten Treibern starten in etwa 5 Sekunden. Danach können die in Ihrem Container ausgeführten Prozesse 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
us-central1
(Iowa) Niedriger CO2-Ausstoßasia-southeast1
(Singapur)europe-west4
(Niederlande) Niedriger CO2-Ausstoß
Auswirkungen auf die Kosten
Weitere Informationen zu den GPU-Preisen finden Sie unter Cloud Run-Preise. Beachten Sie die folgenden wichtigen Hinweise:
- Es fallen keine Gebühren pro Anfrage an. Da Sie die Einstellung CPU immer zugewiesen verwenden müssen, um die GPU-Funktion zu nutzen, werden Mindestinstanzen auch im Inaktivitätsstatus zum vollen Preis berechnet.
- Sie benötigen mindestens 4 CPUs und 16 GiB Arbeitsspeicher.
- Die GPU wird für die gesamte Dauer des Instanzlebenszyklus in Rechnung gestellt.
Unterstützte GPU-Typen
Sie können eine L4-GPU pro Cloud Run-Instanz verwenden. Auf einer L4-GPU sind die folgenden Treiber vorinstalliert:
- Aktuelle NVIDIA-Treiberversion: 535.129.03 (CUDA 12.2)
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.
-
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.
- Wenn Sie die GPU-Funktion verwenden möchten, müssen Sie eine Kontingentaufstockung für eine unterstützte Region anfordern. Das erforderliche Kontingent ist
Total Nvidia L4 GPU allocation, per project per region
, das unter der Cloud Run Admin API liegt.Rufen Sie die Seite Kontingente und Systemlimits auf:
- Im Hilfeartikel Best Practices: KI-Inferenz in Cloud Run mit GPUs finden Sie Empfehlungen zum Erstellen Ihres Container-Images und zum Laden großer Modelle.
- Achten Sie darauf, dass Ihr Cloud Run-Dienst die folgenden Konfigurationen hat:
- Die CPU muss auf CPU immer zugewiesen konfiguriert sein. Beachten Sie, dass Dienste, für die "CPU immer zugewiesen" eingestellt ist, trotzdem auf null skalieren können.
- Konfigurieren Sie für Ihren Dienst mindestens 4 CPUs. 8 CPUs werden empfohlen.
- Konfigurieren Sie mindestens 16 GiB Arbeitsspeicher. 32 GiB werden empfohlen.
- Ermitteln Sie eine optimale maximale Gleichzeitigkeit für die GPU-Nutzung und legen Sie sie fest.
- Die maximale Anzahl von Instanzen muss unter dem zulässigen GPU-Kontingent pro Projekt und Region liegen. Weitere Informationen finden Sie unter GPUs und maximale Instanzen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Diensten benötigen:
-
Rolle Cloud Run Entwickler (
roles/run.developer
) im Cloud Run-Job -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für die Dienstidentität
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 Service mit Google 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-Dienst 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 die GPU zu konfigurieren.
Console
Rufen Sie in der Google Cloud Console Cloud Run auf.
Klicken Sie auf Container bereitstellen und wählen Sie Dienst aus, um einen neuen Dienst zu konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration 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.
Klicken Sie auf Erstellen oder Bereitstellen.
gcloud
Verwenden Sie den Befehl gcloud beta run deploy, um einen Dienst mit aktivierter GPU zu erstellen:
gcloud beta run deploy SERVICE \ --image IMAGE_URL \ --gpu 1
Ersetzen Sie:
- SERVICE durch den Namen Ihres Cloud Run-Dienstes.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Verwenden Sie den Befehl gcloud beta run services update, um die GPU-Konfiguration für einen Dienst zu aktualisieren:
gcloud beta 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
Ersetzen Sie:
- SERVICE durch den Namen Ihres Cloud Run-Dienstes.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CPU durch die Anzahl der CPUs. Sie müssen mindestens
4
CPUs angeben. - MEMORY durch die Größe des Arbeitsspeichers. Sie müssen mindestens
16Gi
(16 GiB) angeben. - GPU_NUMBER durch den Wert
1
(eins). Wenn dieser Wert nicht angegeben ist, aber ein GPU_TYPE vorhanden ist, ist der Standardwert1
. - GPU_TYPE durch den 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). - MAX_INSTANCE durch die maximale Anzahl von Instanzen. Diese Zahl darf das für Ihr Projekt zugewiesene GPU-Kontingent nicht überschreiten.
YAML
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 die Attribute
nvidia.com/gpu:
undnodeSelector:
:
run.googleapis.com/accelerator:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX_INSTANCE' run.googleapis.com/cpu-throttling: 'false' spec: containers: - image: IMAGE_URL ports: - containerPort: CONTAINER_PORT name: http1 resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' # 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
Ersetzen Sie:
- SERVICE durch den Namen Ihres Cloud Run-Dienstes.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - Ersetzen Sie CONTAINER_PORT durch den für Ihren Dienst festgelegten Containerport.
- CPU durch die Anzahl der CPUs. Sie müssen mindestens
4
CPUs angeben. - MEMORY durch die Größe des Arbeitsspeichers. Sie müssen mindestens
16Gi
(16 GiB) angeben. - GPU_NUMBER durch den Wert
1
(eins), da wir nur das Anhängen einer GPU pro Cloud Run-Instanz unterstützen. - GPU_TYPE durch den Wert
nvidia-l4
(nvidia-L
4 Kleinbuchstabe L, nicht numerischer Wert vierzehn). - MAX_INSTANCE durch die maximale Anzahl von Instanzen. Diese Zahl darf das für Ihr Projekt zugewiesene GPU-Kontingent nicht überschreiten.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
GPU-Einstellungen aufrufen
So rufen Sie die aktuellen GPU-Einstellungen für Ihren Cloud Run-Dienst auf:
Console
Rufen Sie in der Google Cloud Console Cloud Run auf.
Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.
Klicken Sie auf den Tab Überarbeitungen.
Im Detailbereich auf der rechten Seite ist die GPU-Einstellung auf dem Tab Container aufgelistet.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run services describe SERVICE
Suchen Sie in der zurückgegebenen Konfiguration nach der GPU-Einstellung.
GPU entfernen
Sie können GPUs mit der Google Cloud Console, der Google Cloud CLI oder YAML entfernen.
Console
Rufen Sie in der Google Cloud Console Cloud Run auf.
Klicken Sie auf Container bereitstellen und wählen Sie Dienst aus, um einen neuen Dienst zu konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.
Klicken Sie auf den Tab Container.
- Entfernen Sie das Häkchen aus dem Kästchen „GPU“.
Klicken Sie auf Erstellen oder Bereitstellen.
gcloud
Wenn Sie die GPU entfernen möchten, legen Sie mit dem Befehl gcloud beta run services update die Anzahl der GPUs auf 0
fest:
gcloud beta run services update SERVICE --gpu 0
Ersetzen Sie SERVICE durch den Namen Ihres Cloud Run-Dienstes.
YAML
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
Bibliotheken
Standardmäßig werden alle NVIDIA L4-Treiberbibliotheken unter /usr/local/nvidia/lib64
bereitgestellt.
Wenn Ihr Dienst die bereitgestellten Bibliotheken nicht finden kann, aktualisieren Sie den Suchpfad für den dynamischen Linker, indem Sie der Dockerfile die Zeile ENV LD_LIBRARY_PATH /usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
hinzufügen.
Sie können LD_LIBRARY_PATH
auch als Umgebungsvariable für den Cloud Run-Dienst festlegen, wenn Sie ein vorhandenes Image haben und es nicht mit einem aktualisierten Dockerfile neu erstellen möchten.
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.129.03) aufwärtskompatibel sind.
GPUs und maximale Anzahl von Instanzen
Die Anzahl der Instanzen mit GPUs ist auf zwei Arten begrenzt:
- Mit der Einstellung Maximale Instanzen wird die Anzahl der Instanzen pro Dienst begrenzt. Dieser Wert darf nicht höher als das GPU-Kontingent pro Projekt und Region für GPUs sein.
- Das zulässige Kontingent an GPUs pro Projekt und Region. Dadurch wird die Anzahl der Instanzen über verschiedene Dienste hinweg in derselben Region begrenzt.