Questa pagina descrive la configurazione della GPU per i tuoi job Cloud Run. Le GPU funzionano bene per i carichi di lavoro di AI, ad esempio l'addestramento di modelli linguistici di grandi dimensioni (LLM) utilizzando i framework che preferisci, l'esecuzione dell'inferenza batch o offline sugli LLM e la gestione di altre attività di calcolo intensivo come l'elaborazione video e il rendering grafico come job in background. Google fornisce GPU NVIDIA L4 con 24 GB di memoria GPU (VRAM), che è separata dalla memoria dell'istanza.
Poiché Cloud Run con GPU è in anteprima pubblica, devi utilizzare un progetto separato per i tuoi job GPU e non lo stesso progetto che contiene gli altri carichi di lavoro di produzione.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 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:
- Le GPU per i job seguono i prezzi senza ridondanza a livello di zona (in anteprima).
- 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.
Ridondanza non zonale della GPU
I job Cloud Run forniscono il supporto della ridondanza non zonale (in anteprima) per le istanze abilitate alla GPU. Quando la ridondanza non a livello di zona è abilitata, Cloud Run tenta il failover per i job abilitati alla GPU in base al criterio del "best effort". Cloud Run indirizza le esecuzioni dei job 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
Se il tuo progetto non ha una quota GPU, esegui il deployment di un servizio Cloud Run per ricevere automaticamente una concessione di 3 quote GPU nvidia-l4
(ridondanza a livello di zona disattivata) per quella regione. Tieni presente che questa concessione automatica della quota è soggetta a disponibilità a seconda della capacità di CPU e memoria. Quando elimini il servizio inutilizzato, la quota allocata rimane invariata.
Se hai bisogno di GPU Cloud Run aggiuntive per i job, richiedi un aumento della quota.
Il numero massimo di istanze (attività) di job GPU che possono essere eseguite in parallelo è limitato dalle seguenti quote:
Quota di istanze GPU di Jobs senza ridondanza a livello di zona. Per impostazione predefinita, questa quota è impostata su
5
.
Il valore di parallelismo deve essere inferiore alla quota di GPU senza ridondanza a livello di zona o alla quota di istanze GPU di Jobs senza ridondanza a livello di zona, a seconda di quale quota è più restrittiva.
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.
- Consulta Best practice: job Cloud Run con GPU per ottimizzare le prestazioni quando utilizzi i job Cloud Run con GPU.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare i job Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM per i job:
-
Cloud Run Developer (
roles/run.developer
): il job Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
): l'identità del servizio
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 job 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 job Cloud Run con GPU
Puoi utilizzare la console Google Cloud , Google Cloud CLI o YAML per configurare la GPU.
gcloud
Per creare un job con la GPU abilitata, utilizza il comando gcloud beta run jobs create:
gcloud beta run jobs create JOB_NAME --image=IMAGE --gpu=1
Sostituisci:
- JOB_NAME con il nome del tuo job Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
.
Per aggiornare la configurazione della GPU per un job, utilizza il comando 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
Sostituisci:
- JOB_NAME con il nome del tuo job Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
. - CPU con un minimo di
4
CPU per il tuo job. Il valore consigliato è8
. - MEMORY con un minimo di
16Gi
(16 GiB). Il valore consigliato è32Gi
. - 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). - PARALLELISM con un valore intero inferiore al valore più basso dei limiti di quota applicabili che hai allocato per il tuo progetto.
YAML
Se stai creando un nuovo job, salta questo passaggio. Se stai aggiornando un job esistente, scarica la relativa configurazione YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Aggiorna l'attributo
nvidia.com/gpu
,annotations: run.googleapis.com/launch-stage
per la fase di lancio enodeSelector:
:
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
Sostituisci:
- JOB_NAME con il nome del tuo job Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
- 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) perché supportiamo l'attacco di una sola GPU per istanza Cloud Run. - GPU_TYPE con il valore
nvidia-l4
(nvidia-L
4 L minuscola, non il valore numerico quattordici).
Crea o aggiorna il job utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Visualizzare le impostazioni della GPU
Per visualizzare le impostazioni GPU attuali per il job Cloud Run:
gcloud
Utilizza questo comando:
gcloud run jobs describe JOB_NAME
Individua l'impostazione della GPU nella configurazione restituita.
Rimuovi GPU
Puoi rimuovere la GPU utilizzando Google Cloud CLI o YAML.
gcloud
Per rimuovere la GPU, imposta il numero di GPU su 0
utilizzando il comando
gcloud beta run jobs update:
gcloud beta run jobs update JOB_NAME --gpu 0
Sostituisci JOB_NAME con il nome del tuo job Cloud Run.
YAML
Se stai creando un nuovo job, salta questo passaggio. Se stai aggiornando un job esistente, scarica la relativa configurazione YAML:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Elimina le righe
nvidia.com/gpu:
enodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Crea o aggiorna il job utilizzando il seguente comando:
gcloud run jobs replace job.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 su GPU e parallelismo
Se esegui attività parallele in un'esecuzione del job, determina e imposta
il valore di parallelismo su un valore inferiore al valore più basso
dei limiti di quota applicabili che hai allocato per il tuo progetto.
Per impostazione predefinita, la quota di istanze di job GPU è impostata su 5
per
le attività eseguite in parallelo. Per richiedere un aumento della quota, vedi Come aumentare la quota. I task GPU vengono avviati il più rapidamente possibile e
raggiungono un massimo che varia a seconda della quota di GPU allocata per
il progetto e la regione selezionati. I deployment di Cloud Run non riescono se imposti il parallelismo su un valore superiore al limite di quota GPU.
Per calcolare la quota di GPU
utilizzata dal job per esecuzione, moltiplica il numero di GPU per attività del job
per il valore di parallelismo. Ad esempio, se hai una quota di GPU di 10 e
deploy il tuo job Cloud Run con --gpu=1
, --parallelism=10
, il tuo
job consuma tutta la quota di 10 GPU. In alternativa, se esegui il deployment con --gpu=1
, --parallelism=20
, i deployment non vanno a buon fine.
Per ulteriori informazioni, consulta Best practice: job Cloud Run con GPU.