Questa pagina descrive la configurazione della GPU per i tuoi servizi Cloud Run. Le GPU funzionano bene per i carichi di lavoro di inferenza AI, come i modelli linguistici di grandi dimensioni (LLM) o altri casi d'uso non AI ad alta intensità di calcolo, come la transcodifica video e il rendering 3D. Google fornisce GPU NVIDIA L4 con 24 GB di memoria GPU (VRAM), che è separata dalla memoria dell'istanza.
La GPU su Cloud Run è completamente gestita, senza bisogno di driver o librerie aggiuntivi. La funzionalità GPU offre disponibilità on demand senza necessità di prenotazioni, in modo simile al funzionamento di CPU on demand e memoria on demand in Cloud Run. Le istanze di un servizio Cloud Run configurato per utilizzare la GPU possono essere fare lo scale down a zero per risparmiare sui costi quando non sono in uso.
Le istanze Cloud Run con una GPU L4 collegata con driver preinstallati vengono avviate in circa 5 secondi, dopodiché i processi in esecuzione nel container possono iniziare a utilizzare la GPU.
Puoi configurare una GPU per istanza Cloud Run. Se utilizzi container sidecar, tieni presente che la GPU può essere collegata a un solo container.
Aree geografiche supportate
asia-southeast1
(Singapore)asia-south1
(Mumbai) . Questa regione è disponibile solo su invito. Se ti interessa questa regione, contatta il team dedicato al tuo Account Google.europe-west1
(Belgio)Bassi livelli di CO2
europe-west4
(Paesi Bassi)Bassi livelli di CO2
us-central1
(Iowa)Bassi livelli di CO2
us-east4
(Virginia del Nord)
Tipi di GPU supportati
Puoi utilizzare una GPU L4 per istanza Cloud Run. Una GPU L4 ha i seguenti driver preinstallati:
- Versione attuale del driver NVIDIA: 535.216.03 (CUDA 12.2)
Impatto sui prezzi
Per i dettagli sui prezzi delle GPU, consulta Prezzi di Cloud Run. Tieni presente i seguenti requisiti e considerazioni:
- Non sono previste commissioni per richiesta. Per utilizzare la funzionalità GPU, devi utilizzare la fatturazione basata sulle istanze. Le istanze minime vengono addebitate alla tariffa completa anche quando sono inattive.
- Esiste una differenza di costo tra la ridondanza delle GPU a livello di zona e quella non a livello di zona. Per i dettagli sui prezzi delle GPU, consulta Prezzi di Cloud Run.
- Devi utilizzare un minimo di 4 CPU e 16 GiB di memoria.
- La GPU viene fatturata per l'intera durata del ciclo di vita dell'istanza.
Opzioni di ridondanza a livello di zona della GPU
Per impostazione predefinita, Cloud Run esegue il deployment del servizio in più zone all'interno di una regione. Questa architettura offre resilienza intrinseca: se una zona subisce un'interruzione, Cloud Run indirizza automaticamente il traffico dalla zona interessata alle zone integre all'interno della stessa regione.
Quando lavori con le risorse GPU, tieni presente che queste hanno vincoli di capacità specifici. Durante un'interruzione di servizio nella zona, il meccanismo di failover standard per i carichi di lavoro GPU si basa sulla disponibilità di una capacità GPU inutilizzata sufficiente nelle zone integre rimanenti. A causa della natura vincolata delle GPU, questa capacità potrebbe non essere sempre disponibile.
Per aumentare la disponibilità dei servizi con accelerazione GPU durante le interruzioni di servizio nella zona, puoi configurare la ridondanza a livello di zona specificamente per le GPU:
Ridondanza zonale attivata (impostazione predefinita): Cloud Run riserva la capacità della GPU per il tuo servizio in più zone. Ciò aumenta significativamente la probabilità che il tuo servizio possa gestire correttamente il traffico reindirizzato da una zona interessata, offrendo una maggiore affidabilità durante i guasti zonali con un costo aggiuntivo per secondo-GPU.
Ridondanza a livello di zona disattivata: Cloud Run tenta il failover per i carichi di lavoro GPU nel miglior modo possibile. Il traffico viene indirizzato ad altre zone solo se in quel momento è disponibile una capacità GPU sufficiente. Questa opzione non garantisce la capacità riservata per gli scenari di failover, ma comporta un costo inferiore per secondo-GPU.
SLA
L'SLA per la GPU Cloud Run dipende dal fatto che il servizio utilizzi l'opzione di ridondanza a livello di zona o non a livello di zona. Per informazioni dettagliate, consulta la pagina SLA.
Richiedi un aumento della quota
Ai progetti che utilizzano le GPU di Cloud Run nvidia-l4
in una regione per la prima volta vengono automaticamente concesse 3 quote di GPU (ridondanza a livello di zona disattivata) quando viene creato il primo deployment.
Se hai bisogno di GPU Cloud Run aggiuntive, devi richiedere un aumento della quota
per il tuo servizio Cloud Run. Utilizza i link forniti nei seguenti
pulsanti per richiedere la quota di cui hai bisogno.
Quota necessaria | Link alla quota |
---|---|
GPU con ridondanza zonale disattivata (prezzo inferiore) | Richiedi una quota di GPU senza ridondanza a livello di zona |
GPU con ridondanza a livello di zona attivata (prezzo più elevato) | Richiedi una quota di GPU con ridondanza a livello di zona |
Per ulteriori informazioni sulla richiesta di aumenti di quota, consulta Come aumentare la quota.
Prima di iniziare
Il seguente elenco descrive i requisiti e le limitazioni per l'utilizzo delle GPU in 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.
- Richiedi la quota necessaria.
- Consulta Best practice: inferenza AI su Cloud Run con GPU per suggerimenti sulla creazione dell'immagine container e sul caricamento di modelli di grandi dimensioni.
- Assicurati che il servizio Cloud Run abbia le seguenti configurazioni:
- Configura le impostazioni di fatturazione in modo che la fatturazione sia basata sulle istanze. Tieni presente che i servizi impostati sulla fatturazione basata sulle istanze possono comunque scalare a zero.
- Configura un minimo di 4 CPU per il tuo servizio, con 8 CPU consigliate.
- Configura un minimo di 16 GiB di memoria, con 32 GiB consigliati.
- Determina e imposta una concorrenza massima ottimale per l'utilizzo della GPU.
- Il valore Istanze massime deve essere impostato su un numero inferiore alla quota consentita per progetto per regione per la GPU. Consulta Informazioni su GPU e numero massimo di istanze.
-
Cloud Run Developer (
roles/run.developer
): il servizio Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
): l'identità del servizio Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu e fai clic su Esegui il deployment del contenitore per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment della nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Configura CPU, memoria, concorrenza, ambiente di esecuzione e probe di avvio seguendo i consigli riportati in Prima di iniziare.
- Seleziona la casella di controllo GPU, quindi seleziona il tipo di GPU dal menu Tipo di GPU e il numero di GPU dal menu Numero di GPU.
- Per impostazione predefinita, per i nuovi servizi è attivata la ridondanza di zona. Per modificare l'impostazione
corrente, seleziona la casella di controllo GPU per visualizzare le opzioni di ridondanza della GPU.
- Seleziona Nessuna ridondanza a livello di zona per disattivarla.
- Seleziona Ridondanza a livello di zona per attivare la ridondanza a livello di zona.
Fai clic su Crea o Esegui il deployment.
- SERVICE con il nome del tuo servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SERVICE con il nome del tuo servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CPU con il numero di CPU. Devi specificare almeno
4
CPU. - MEMORY con la quantità di memoria. Devi specificare almeno
16Gi
(16 GiB). - GPU_NUMBER con il valore
1
(uno). Se non è specificato, ma è presente un GPU_TYPE, il valore predefinito è1
. - GPU_TYPE con il tipo di GPU. Se non è specificato, ma è presente un valore GPU_NUMBER, il valore predefinito è
nvidia-l4
(nvidiaL
4 L minuscola, non il valore numerico quattordici). - MAX_INSTANCE con il numero massimo di istanze. Questo numero non può superare la quota di GPU allocata per il tuo progetto.
- GPU_ZONAL_REDUNDANCY con
no-gpu-zonal-redundancy
per disattivare la ridondanza a livello di zona ogpu-zonal-redundancy
per attivarla. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'attributo
nvidia.com/gpu:
enodeSelector:
:
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
Sostituisci:
- SERVICE con il nome del tuo servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- CONTAINER_PORT con la porta del container impostata per il tuo servizio.
- CPU con il numero di CPU. Devi specificare almeno
4
CPU. - MEMORY con la quantità di memoria. Devi specificare almeno
16Gi
(16 GiB). - GPU_TYPE con il valore
nvidia-l4
(nvidia-L
4 L minuscola, non il valore numerico quattordici). - MAX_INSTANCE con il numero massimo di istanze. Questo numero non può superare la quota di GPU allocata per il tuo progetto.
- GPU_ZONAL_REDUNDANCY con
false
per attivare la ridondanza zonale della GPU otrue
per disattivarla.
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
- SERVICE con il nome del tuo servizio Cloud Run.
- GPU_ZONAL_REDUNDANCY con
false
per attivare la ridondanza zonale della GPU otrue
per disattivarla. - IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la formaLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- CPU con il numero di CPU. Devi specificare almeno
4
CPU. - MEMORY con la quantità di memoria. Devi specificare almeno
16Gi
(16 GiB). - GPU_TYPE con il valore
nvidia-l4
(nvidia-L
4 L minuscola, non il valore numerico quattordici). Nella console Google Cloud , vai a Cloud Run:
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli a destra, l'impostazione della GPU è elencata nella scheda Container.
Utilizza questo comando:
gcloud run services describe SERVICE
Individua l'impostazione GPU nella configurazione restituita.
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu e fai clic su Esegui il deployment del contenitore per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment della nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Deseleziona la casella di controllo GPU.
Fai clic su Crea o Esegui il deployment.
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Elimina le righe
nvidia.com/gpu:
enodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
- L'impostazione Numero massimo di istanze limita il numero di istanze per servizio. Questo valore non può essere superiore alla quota di GPU per progetto per regione per GPU.
- La quota di GPU consentite per progetto per regione. Ciò limita il numero di istanze tra i servizi nella stessa regione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment dei servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM sui servizi:
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.
Configura un servizio Cloud Run con GPU
Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu non apporti aggiornamenti espliciti per modificarla.
Puoi utilizzare la console Google Cloud , Google Cloud CLI o YAML per configurare la GPU.
Console
gcloud
Per creare un servizio con la GPU abilitata, utilizza il comando gcloud run deploy:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --gpu 1
Sostituisci:
Per aggiornare la configurazione della GPU per un servizio, utilizza il comando 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
Sostituisci:
YAML
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_service
nella configurazione Terraform: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"
}
}
}
Sostituisci:
Visualizzare le impostazioni della GPU
Per visualizzare le impostazioni GPU attuali per il tuo servizio Cloud Run:
Console
gcloud
Rimozione della GPU
Puoi rimuovere la GPU utilizzando la console Google Cloud , Google Cloud CLI o YAML.
Console
gcloud
Per rimuovere la GPU, imposta il numero di GPU su 0
utilizzando il comando
gcloud run services update:
gcloud run services update SERVICE --gpu 0
Sostituisci SERVICE con il nome del tuo servizio Cloud Run.
YAML
Librerie
Per impostazione predefinita, tutte le librerie dei driver NVIDIA L4 sono montate in
/usr/local/nvidia/lib64
. Cloud Run aggiunge automaticamente questo percorso alla
variabile di ambiente LD_LIBRARY_PATH
(ovvero ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64
)
del container con la GPU. In questo modo, il linker dinamico può trovare le librerie dei driver NVIDIA. Il linker cerca e risolve i percorsi
nell'ordine in cui li elenchi nella variabile di ambiente LD_LIBRARY_PATH
. I valori
che specifichi in questa variabile hanno la precedenza sul percorso predefinito delle librerie dei driver Cloud Run /usr/local/nvidia/lib64
.
Se vuoi utilizzare una versione di CUDA superiore a 12.2,
il modo più semplice è fare affidamento a un'immagine di base NVIDIA più recente
con i pacchetti di compatibilità avanzata già installati. Un'altra opzione è installare manualmente i pacchetti di compatibilità futura NVIDIA e aggiungerli a LD_LIBRARY_PATH
. Consulta la matrice di compatibilità di NVIDIA per determinare quali versioni di CUDA sono compatibili con la versione del driver NVIDIA fornita (535.216.03).
Informazioni sulle GPU e sul numero massimo di istanze
Il numero di istanze con GPU è limitato in due modi: