Questa pagina descrive la configurazione della GPU per il servizio Cloud Run. Le GPU funzionano bene per carichi di lavoro di inferenza AI, come i modelli linguistici di grandi dimensioni (LLM) o altri casi d'uso non basati sull'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 pari a Total Nvidia L4 GPU allocation, per project per region
.
Per maggiori dettagli, vedi Prima di iniziare.
La GPU su Cloud Run è completamente gestita, senza driver o librerie aggiuntivi necessaria. La funzionalità GPU offre disponibilità on demand senza necessità di prenotazioni. in modo simile a CPU on demand lavoro on demand in memory 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.
Istanze Cloud Run con una GPU L4 collegata con driver preinstallati dopo circa 5 secondi, dopodiché i processi in esecuzione un container può iniziare a usare la GPU.
Puoi configurare una GPU per ogni 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) A basse emissioni di CO2asia-southeast1
(Singapore)europe-west4
(Paesi Bassi) Bassi livelli di CO2
Impatto sui prezzi
Per i dettagli sui prezzi delle GPU, consulta i prezzi di Cloud Run. Tieni presente quanto segue:
- Non sono previste tariffe per richiesta. Poiché devi utilizzare la CPU sempre allocata per utilizzare la funzionalità GPU, le istanze minime vengono addebitate alla tariffa intera anche in caso di inattività.
- 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.
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.129.03 (CUDA 12.2)
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.
- Per utilizzare la funzionalità GPU, devi richiedere un aumento della quota per una regione supportata. La quota necessaria è
Total Nvidia L4 GPU allocation, per project per region
, che si trova nell'API Cloud Run Admin. - Consulenza 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:
- La CPU deve essere configurata su CPU sempre allocata. Tieni presente che i servizi con CPU sempre allocata possono comunque essere ridotti 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:
-
Sviluppatore Cloud Run (
roles/run.developer
) sul servizio Cloud Run -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'identità del 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 con le API Google Cloud, come le librerie client di 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 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 console Google Cloud, 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, quindi fai clic su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila il servizio iniziale delle impostazioni, poi fai clic su Container, volumi, networking, sicurezza per espandere di configurazione del servizio.
Fai clic sulla scheda Contenitore.
- Configura CPU, memoria, contemporaneità, esecuzione dell'ambiente e il probe di avvio seguendo i suggerimenti descritti 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 Numero di GPU. o dal menu Fogli Google.
Fai clic su Crea o Esegui il deployment.
gcloud
Per creare un servizio con GPU abilitata, utilizza il metodo 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 GPU per un servizio, utilizza il metodo aggiornamento dei servizi gcloud beta run :
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
Sostituisci:
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, per
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
di Google. - 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 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 GPU allocata per il progetto.
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' 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
Sostituisci:
- SERVICE con il nome del servizio Cloud Run.
- IMAGE_URL con un riferimento all'immagine container, per
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_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). - MAX_INSTANCE con il numero massimo di istanze. Questo numero non può superare la quota GPU allocata per il progetto.
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Visualizza impostazioni GPU
Per visualizzare le impostazioni GPU correnti per il servizio Cloud Run:
Console
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 GPU è elencata nella scheda Contenitore.
gcloud
Utilizza questo comando:
gcloud run services describe SERVICE
Individua l'impostazione GPU nel configurazione.
Rimozione GPU in corso...
Puoi rimuovere la GPU utilizzando la console Google Cloud, Google Cloud CLI o YAML.
Console
Nella console Google Cloud, vai a Cloud Run:
Fai clic su Esegui il deployment del container e seleziona Servizio per nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, quindi fai clic su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila il servizio iniziale delle impostazioni, poi fai clic su Container, volumi, networking, sicurezza per espandere 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 GPU, imposta il numero di GPU su 0
utilizzando il
aggiornamento servizi gcloud beta run
:
gcloud beta run services update SERVICE --gpu 0
Sostituisci SERVICE con il nome del tuo 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
nvidia.com/gpu:
enodeSelector: run.googleapis.com/accelerator: nvidia-l4
righe.Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Librerie
Per impostazione predefinita, tutte le librerie driver NVIDIA L4 sono montate
/usr/local/nvidia/lib64
.
Se il servizio non riesce a trovare le librerie fornite, aggiorna il percorso di ricerca per il linker dinamico aggiungendo la riga ENV LD_LIBRARY_PATH /usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
al tuo Dockerfile.
Tieni presente che puoi anche impostare LD_LIBRARY_PATH
come variabile di ambiente per il servizio Cloud Run, se hai un'immagine esistente e non vuoi ricostruirla con un Dockerfile aggiornato.
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à con forwarding NVIDIA
e aggiungilo 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.129.03).
Informazioni sulle GPU e sulle istanze massime
Il numero di istanze con GPU è limitato per 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 numero di istanze tra servizi nella stessa regione.