Questa pagina descrive la configurazione della GPU per il servizio 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), distinta dalla memoria dell'istanza.
Per utilizzare la funzionalità GPU, devi richiedere una quota. Per informazioni dettagliate, consulta Richiedere un aumento della quota.
La GPU su Cloud Run è completamente gestita e non sono necessari driver o librerie aggiuntivi. La funzionalità GPU offre disponibilità on demand senza necessità di prenotazioni, in modo simile al funzionamento della CPU e della memoria on demand in Cloud Run. Le istanze di un servizio Cloud Run configurato per l'utilizzo di GPU possono essere ridotte a zero per risparmiare sui costi quando non sono in uso.
Le istanze Cloud Run con una GPU L4 collegata con i driver preinstallati vengono avviate in circa 5 secondi, a quel punto i processi in esecuzione nel container possono iniziare a utilizzare la GPU.
Puoi configurare una GPU per istanza Cloud Run. Se utilizzi i contenitori sidecar, tieni presente che la GPU può essere collegata a un solo contenitore.
Aree geografiche supportate
us-central1
(Iowa)Basso livello di CO2
asia-southeast1
(Singapore)europe-west1
(Belgio)Basso livello di CO2
europe-west4
(Paesi Bassi)Basso livello di CO2
asia-south1
(Mumbai)- Nota: questa regione è disponibile solo su invito. Contatta il team dedicato all'Account Google se ti interessa questa regione
Tipi di GPU supportati
Puoi utilizzare una GPU L4 per ogni istanza Cloud Run. Una GPU L4 ha i seguenti driver preinstallati:
- La 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 intera anche quando sono inattive.
- Devi utilizzare almeno 4 CPU e 16 GB di memoria.
- La GPU viene fatturata per l'intera durata del ciclo di vita dell'istanza.
- Esiste una differenza di costo tra la redundanza zonale della GPU e la ridondanza non zonale. Per i dettagli sui prezzi delle GPU, consulta la pagina Prezzi di Cloud Run.
SLA
L'SLA per Cloud Run con GPU dipende dall'utilizzo dell'opzione di ridondanza a livello di zona o non a livello di zona da parte del servizio. Per maggiori dettagli, consulta la pagina dello SLA.
Opzioni di ridondanza zonale delle GPU
Per impostazione predefinita, Cloud Run esegue il deployment del servizio in più zone all'interno di una regione. Questa architettura offre una resilienza intrinseca: se una zona presenta un'interruzione, Cloud Run reindirizza automaticamente il traffico dalla zona interessata alle zone funzionanti all'interno della stessa regione.
Quando utilizzi le risorse GPU, tieni presente che hanno vincoli di capacità specifici. Durante un'interruzione a livello di zona, il meccanismo di failover standard per i carichi di lavoro GPU si basa sulla disponibilità di una capacità GPU inutilizzata sufficiente nelle zone rimanenti in buono stato. A causa della natura limitata delle GPU, questa capacità potrebbe non essere sempre disponibile.
Per aumentare la disponibilità dei servizi accelerati tramite GPU durante le interruzioni di servizio a livello di zona, puoi configurare la ridondanza zonale specificamente per le GPU:
Ridondanza a livello di zona attivata (valore predefinito): Cloud Run riserva la capacità GPU per il tuo servizio su più zone. Ciò aumenta notevolmente la probabilità che il tuo servizio possa gestire correttamente il traffico reindirizzato da una zona interessata, offrendo una maggiore affidabilità in caso di 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 secondo il criterio del "best effort". 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.
Richiedi un aumento della quota
Per accedere alle GPU di Cloud Run, devi richiedere un aumento della quota per il tuo servizio Cloud Run. Utilizza i link forniti nei pulsanti seguenti per richiedere la quota necessaria.
Quota necessaria | Link alla quota |
---|---|
GPU con ridondanza a livello di zona disattivata (prezzo più basso) | Richiedi una quota di GPU senza ridondanza zonale |
GPU con ridondanza a livello di zona attivata (prezzo più alto) | Richiedi una quota di GPU con ridondanza a livello di zona |
Per ulteriori informazioni su come richiedere aumenti di quota, consulta Come aumentare la quota.
Prima di iniziare
L'elenco seguente 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 richiesta.
- Consulta la sezione Best practice: inferenza AI su Cloud Run con GPU per suggerimenti su come creare l'immagine del contenitore e caricare modelli di grandi dimensioni.
- Assicurati che il servizio Cloud Run abbia le seguenti configurazioni:
- Configura le impostazioni di fatturazione in base alle istanze. Tieni presente che i servizi impostati per la fatturazione basata su istanze possono comunque essere scalati a zero.
- Configura un minimo di 4 CPU per il servizio, con un valore consigliato di 8 CPU.
- Configura almeno 16 GB di memoria, consigliati 32 GB.
- Determina e imposta un livello massimo di contemporaneità ottimale per l'utilizzo della GPU.
- Istanze massime deve essere impostato su un numero inferiore alla quota per progetto per regione per GPU consentita. Consulta Informazioni sulle GPU e sulle istanze massime.
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:
-
Cloud Run Developer (
roles/run.developer
) nel servizio Cloud Run -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'identità di servizio
Per un elenco dei ruoli e delle autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il servizio Cloud Run interagisce conGoogle Cloud API, come le librerie client di Cloud, consulta la guida alla configurazione dell'identità di servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci l'accesso.
Configurare un servizio Cloud Run con GPU
Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive acquisiranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Puoi utilizzare la console Google Cloud, Google Cloud CLI o YAML per configurare la GPU.
Console
Nella Google Cloud console, vai a Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio, quindi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Configura i probe CPU, memoria, concorrenza, ambiente di esecuzione e di avvio seguendo i consigli riportati nella sezione 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, la ridondanza zonale è attiva per i nuovi servizi. Per modificare l'impostazione corrente, seleziona la casella di controllo GPU per visualizzare le opzioni di redundanza GPU.
- Seleziona Nessuna ridondanza zonale per disattivare la ridondanza zonale.
- Seleziona Redundanza zonale per attivare la ridondanza zonale.
Fai clic su Crea o Esegui il deployment.
gcloud
Per creare un servizio con la GPU abilitata, utilizza il comando gcloud beta run deploy:
gcloud beta run deploy SERVICE \ --image IMAGE_URL \ --gpu 1
Sostituisci:
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine del 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
.
Per aggiornare la configurazione della GPU per un servizio, utilizza il comando gcloud beta run services update:
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 --GPU_ZONAL_REDUNDANCY
Sostituisci:
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine del 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 valore 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
(L minuscola nvidiaL
4, 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 progetto.
- GPU_ZONAL_REDUNDANCY con
no-gpu-zonal-redundancy
per disattivare la ridondanza zonale ogpu-zonal-redundancy
per attivarla.
YAML
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 annotations: run.googleapis.com/launch-stage: BETA 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 servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine del 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 contenitore impostata per il 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
(L minuscola nvidia-L
4, 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 progetto.
- GPU_ZONAL_REDUNDANCY con
false
per attivare la ridondanza GPU a livello di zona otrue
per disattivarla.
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsa google_cloud_run_v2_service
nella configurazione Terraform.
resource "google_cloud_run_v2_service" "default" {
provider = google-beta
name = "SERVICE"
location = "us-central1"
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:
- SERVICE con il nome del servizio Cloud Run.
- GPU_ZONAL_REDUNDANCY con
false
per attivare la ridondanza GPU a livello di zona otrue
per disattivarla. - IMAGE_URL con un riferimento all'immagine del 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
(L minuscola nvidia-L
4, non il valore numerico quattordici).
Visualizza le impostazioni della GPU
Per visualizzare le impostazioni GPU attuali per il tuo servizio Cloud Run:
Console
Nella Google Cloud console, 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 GPU è elencata nella scheda Contenitore.
gcloud
Utilizza il seguente comando:
gcloud run services describe SERVICE
Individua l'impostazione GPU nella configurazione restituita.
Rimozione della GPU
Puoi rimuovere la GPU utilizzando la console Google Cloud, Google Cloud CLI o YAML.
Console
Nella Google Cloud console, vai a Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni 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.
gcloud
Per rimuovere la GPU, imposta il numero di GPU su 0
utilizzando il comando
gcloud beta run services update.
gcloud beta run services update SERVICE --gpu 0
Sostituisci SERVICE con il nome del servizio Cloud Run.
YAML
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
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 contenitore 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 elencato nella variabile di ambiente LD_LIBRARY_PATH
. Eventuali valori specificati in questa variabile hanno la precedenza sul percorso predefinito delle librerie del driver Cloud Run /usr/local/nvidia/lib64
.
Se vuoi utilizzare una versione di CUDA successiva alla 12.2,
il modo più semplice è fare affidamento su una immagine di base NVIDIA
più recente con i pacchetti di compatibilità futura già installati. Un'altra opzione è installare manualmente i pacchetti di compatibilità futura di NVIDIA e aggiungerli a LD_LIBRARY_PATH
. Consulta la matrice di compatibilità di NVIDIA per determinare quali versioni di CUDA sono compatibili con le versioni successive del driver NVIDIA fornito (535.216.03).
Informazioni sulle GPU e sulle istanze massime
Il numero di istanze con GPU è limitato in due modi:
- L'impostazione Istanze massime limita il numero di istanze per servizio. Non può essere impostato un valore superiore alla quota di GPU per progetto per regione per GPU.
- La quota di GPU consentite per progetto e per regione. Ciò limita il numero di istanze nei servizi nella stessa regione.