Supporto GPU per i pool di worker

Questa pagina descrive la configurazione della GPU per i worker pool Cloud Run. Google fornisce GPU NVIDIA L4 con 24 GB di memoria GPU (VRAM) e GPU NVIDIA RTX PRO 6000 Blackwell (anteprima) con 96 GB di memoria GPU (VRAM), che è separata dalla memoria dell'istanza.

La GPU su Cloud Run è completamente gestita, senza la necessità 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 o NVIDIA RTX PRO 6000 Blackwell 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.

Tipi di GPU supportati

Cloud Run supporta due tipi di GPU:

  • GPU L4 con la versione attuale del driver NVIDIA: 535.216.03 (12.2). Per le GPU L4, devi utilizzare un minimo di 4 CPU e 16 GiB di memoria.
  • GPU NVIDIA RTX PRO 6000 Blackwell con la versione attuale del driver NVIDIA: 580.x.x (13.0) (anteprima). Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi utilizzare un minimo di 20 CPU e 80 GiB di memoria.

Aree geografiche supportate

Le seguenti regioni sono supportate dalla GPU L4:

  • 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) icona foglia Bassi livelli di CO2
  • europe-west4 (Paesi Bassi) icona foglia Bassi livelli di CO2
  • us-central1 (Iowa) icona foglia Bassi livelli di CO2 . Questa regione è disponibile solo su invito. Se ti interessa questa regione, contatta il team dedicato al tuo Account Google.
  • us-east4 (Virginia del Nord)

Le seguenti regioni sono supportate dalla GPU NVIDIA RTX PRO 6000 Blackwell (anteprima):

  • asia-southeast1 (Singapore). Questa regione è disponibile solo su invito. Se ti interessa questa regione, contatta il team dedicato al tuo Account Google.
  • asia-south2 (Delhi, India). Questa regione è disponibile solo su invito. Se ti interessa questa regione, contatta il team dedicato al tuo Account Google.
  • europe-west4 (Paesi Bassi) icona foglia Bassi livelli di CO2
  • us-central1 (Iowa) icona foglia Bassi livelli di CO2

Impatto sui prezzi

Per i dettagli sui prezzi delle GPU, consulta Prezzi di Cloud Run. Tieni presente i seguenti requisiti e considerazioni:

  • 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.
  • I pool di worker GPU non possono essere scalati automaticamente. Ti viene addebitato un importo per la GPU anche se non esegue alcun processo e finché l'istanza GPU del pool di worker è in esecuzione.
  • La CPU e la memoria per i pool di worker hanno un prezzo diverso rispetto a servizi e job. Tuttavia, lo SKU GPU ha lo stesso prezzo di servizi e job.
  • Le configurazioni di CPU e memoria della risorsa.
  • 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 pool di worker 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 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 integre rimanenti. A causa della natura vincolata delle GPU, questa capacità potrebbe non essere sempre disponibile.

Per aumentare la disponibilità dei pool di worker con accelerazione GPU durante le interruzioni di servizio nella zona, puoi configurare la ridondanza a livello di zona specificamente per le GPU:

  • Ridondanza a livello di zona attivata (impostazione predefinita): Cloud Run riserva la capacità della GPU per il tuo pool di worker in più zone. Ciò aumenta significativamente la probabilità che il pool di worker possa gestire correttamente il traffico reindirizzato da una zona interessata, offrendo una maggiore affidabilità durante gli errori a livello di zona con un costo aggiuntivo per secondo-GPU.

  • Ridondanza a livello di zona disattivata: Cloud Run tenta il failover per i carichi di lavoro GPU in base al 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.

SLA

L'SLA per Cloud Run GPU dipende dal fatto che il pool di worker 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. La quota per la GPU Cloud Run nvidia-rtx-pro-6000 viene concessa in milligPU. Ai progetti che utilizzano la GPU nvidia-rtx-pro-6000 in una regione per la prima volta viene concessa automaticamente una quota di 3000 milliGPU (ridondanza zonale disattivata) quando viene creato il primo deployment. Equivale a 3 GPU.

Se hai bisogno di GPU Cloud Run aggiuntive, devi richiedere un aumento della quota per il tuo pool di worker Cloud Run. Utilizza i link forniti nei seguenti pulsanti per richiedere la quota di cui hai bisogno.

Quota necessaria Link alla quota
GPU L4 con ridondanza zonale disattivata (prezzo inferiore) Richiedi una quota di GPU senza ridondanza a livello di zona
GPU L4 con ridondanza zonale attivata (prezzo più alto) Richiedi una quota di GPU con ridondanza a livello di zona
GPU NVIDIA RTX PRO 6000 Blackwell con ridondanza zonale disattivata (prezzo inferiore) Richiedi una quota di GPU senza ridondanza a livello di zona
GPU NVIDIA RTX PRO 6000 Blackwell con ridondanza zonale attivata (prezzo più alto) Richiedi una quota di GPU con ridondanza a livello di zona

Per ulteriori informazioni sulla richiesta di aumenti di quota, vedi Come aumentare la quota.

Prima di iniziare

Il seguente elenco descrive i requisiti e le limitazioni per l'utilizzo delle GPU in Cloud Run:

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Abilitare l'API Cloud Run.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  7. Richiedi la quota necessaria.
  8. Consulta Best practice per le GPU: pool di worker Cloud Run con GPU per suggerimenti sulla creazione dell'immagine container e sul caricamento di modelli di grandi dimensioni.
  9. Assicurati che il pool di worker Cloud Run abbia le seguenti configurazioni:
    • Configura le impostazioni di fatturazione in modo che la fatturazione sia basata sulle istanze. Tieni presente che i pool di worker impostati sulla fatturazione basata sulle istanze possono comunque scalare a zero.
    • Per la GPU L4, configura un minimo di 4 CPU per il pool di worker, con 8 CPU consigliate, e un minimo di 16 GiB di memoria, con 32 GiB consigliati.
    • Per la GPU NVIDIA RTX PRO 6000 Blackwell, configura un minimo di 20 CPU e un minimo di 80 GiB di memoria.
    • Determina e imposta una concorrenza massima ottimale per l'utilizzo della GPU.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment dei pool di worker Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM sui workerpool:

  • Cloud Run Developer (roles/run.developer): il pool di worker Cloud Run
  • Service Account User (roles/iam.serviceAccountUser) - l'identità di servizio

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo pool di worker Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Configura un pool di worker 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

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Seleziona Worker pool dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo worker pool. Se stai configurando un pool di worker esistente, fai clic sul pool di worker, quindi su Modifica ed esegui il deployment della nuova revisione.

  3. Se stai configurando un nuovo pool di worker, compila la pagina delle impostazioni iniziali del pool di worker, poi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del pool di worker.

  4. Fai clic sulla scheda Contenitore.

    immagine

    • 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, la ridondanza di zona è attiva. Per modificare l'impostazione attuale, seleziona la casella di controllo GPU per visualizzare le opzioni di Ridondanza GPU.
      • Seleziona Nessuna ridondanza a livello di zona per disattivare la ridondanza a livello di zona.
      • Seleziona Ridondanza di zona per attivare la ridondanza di zona.
  5. Fai clic su Crea o Esegui il deployment.

gcloud

Per creare un pool di worker abilitato per la GPU, utilizza il comando gcloud beta run worker-pools deploy:

  gcloud beta run worker-pools deploy WORKER_POOL \
    --image IMAGE_URL \
    --gpu 1

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker Cloud Run.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

Per aggiornare la configurazione della GPU per un pool di worker, utilizza il comando gcloud beta run worker-pools update:

  gcloud beta run worker-pools update WORKER_POOL \
    --image IMAGE_URL \
    --cpu CPU \
    --memory MEMORY \
    --gpu GPU_NUMBER \
    --gpu-type GPU_TYPE \
    --GPU_ZONAL_REDUNDANCY
    

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker Cloud Run.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • CPU: il numero di CPU. Per la GPU NVIDIA L4, devi specificare almeno 4 CPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 20 CPU.
  • MEMORY: la quantità di memoria. Per la GPU NVIDIA L4, devi specificare almeno 16Gi (16 GiB). Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 80Gi (80 GiB).
  • GPU_NUMBER: il valore 1 (uno). Se non è specificato, ma è presente un GPU_TYPE, il valore predefinito è 1.
  • GPU_TYPE: il tipo di GPU. Per la GPU L4, inserisci il valore nvidia-l4 (nvidia-L4 L minuscola, non il valore numerico quattordici). GPU NVIDIA RTX PRO 6000 Blackwell, inserisci nvidia-rtx-pro-6000.
  • GPU_ZONAL_REDUNDANCY: no-gpu-zonal-redundancy per disattivare la ridondanza di zona o gpu-zonal-redundancy per attivarla.

YAML

  1. Se stai creando un nuovo pool di worker, ignora questo passaggio. Se stai aggiornando un pool di worker esistente, scarica la relativa configurazione YAML:

    gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. Aggiorna l'attributo nvidia.com/gpu: e nodeSelector:
    run.googleapis.com/accelerator:
    :

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/launch-stage: BETA
            run.googleapis.com/gpu-zonal-redundancy-disabled: 'GPU_ZONAL_REDUNDANCY'
        spec:
          containers:
          - image: IMAGE_URL
            resources:
              limits:
                cpu: 'CPU'
                memory: 'MEMORY'
                nvidia.com/gpu: '1'
          nodeSelector:
            run.googleapis.com/accelerator: GPU_TYPE

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del pool di worker Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
    • CPU: il numero di CPU. Per la GPU L4, devi specificare almeno 4 CPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 20 CPU.
    • MEMORY: la quantità di memoria. Per la GPU L4, devi specificare almeno 16Gi (16 GiB). Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 80Gi (80 GiB).
    • GPU_TYPE: il tipo di GPU. Per la GPU L4, inserisci il valore nvidia-l4 (nvidia-L4 L minuscola, non il valore numerico quattordici). GPU NVIDIA RTX PRO 6000 Blackwell, inserisci nvidia-rtx-pro-6000.
    • GPU_ZONAL_REDUNDANCY: false per attivare la ridondanza zonale della GPU o true per disattivarla.
  3. Crea o aggiorna il pool di worker utilizzando il seguente comando:

    gcloud beta run worker-pools replace workerpool.yaml

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

resource "google_cloud_run_v2_worker_pool" "default" {
  provider = google-beta
  name     = "WORKER_POOL"
  location = "REGION"

  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 quanto segue:

  • WORKER_POOL: il nome del pool di worker Cloud Run.
  • GPU_ZONAL_REDUNDANCY: false per attivare la ridondanza zonale della GPU o true per disattivarla.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • CPU: il numero di CPU. Per la GPU NVIDIA L4, devi specificare almeno 4 CPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 20 CPU.
  • MEMORY: la quantità di memoria. Per la GPU NVIDIA L4, devi specificare almeno 16Gi (16 GiB). Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 80Gi (80 GiB).
  • GPU_TYPE: il tipo di GPU. Per la GPU L4, inserisci il valore nvidia-l4 (nvidia-L4 L minuscola, non il valore numerico quattordici). GPU NVIDIA RTX PRO 6000 Blackwell, inserisci nvidia-rtx-pro-6000.

Visualizza le impostazioni della GPU

Per visualizzare le impostazioni GPU attuali per il tuo pool di worker Cloud Run:

Console

  1. Nella console Google Cloud , vai alla pagina dei pool di worker Cloud Run:

    Vai ai pool di worker Cloud Run

  2. Fai clic sul pool di worker che ti interessa per aprire la pagina Dettagli dei pool di worker.

  3. Fai clic su Modifica ed esegui il deployment di una nuova revisione.

  4. Individua l'impostazione GPU nei dettagli della configurazione.

gcloud

  1. Utilizza il seguente comando:

    gcloud beta run worker-pools describe WORKER_POOL
  2. Individua l'impostazione GPU nella configurazione restituita.

Rimuovi GPU

Puoi rimuovere la GPU utilizzando la console Google Cloud , Google Cloud CLI o YAML.

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Seleziona Worker pool dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo worker pool. Se stai configurando un pool di worker esistente, fai clic sul pool di worker, quindi su Modifica ed esegui il deployment della nuova revisione.

  3. Se stai configurando un nuovo pool di worker, compila la pagina delle impostazioni iniziali del pool di worker, poi fai clic su Container, volumi, networking, sicurezza per espandere la pagina di configurazione del pool di worker.

  4. Fai clic sulla scheda Contenitore.

immagine

  • Deseleziona la casella di controllo GPU.
  1. Fai clic su Crea o Esegui il deployment.

gcloud

Per rimuovere la GPU, imposta il numero di GPU su 0:

  gcloud beta run worker-pools update WORKER_POOL --gpu 0
  

Sostituisci WORKER_POOL con il nome del tuo pool di worker Cloud Run.

YAML

  1. Se stai creando un nuovo pool di worker, ignora questo passaggio. Se stai aggiornando un pool di worker esistente, scarica la relativa configurazione YAML:

    gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. Elimina le righe nvidia.com/gpu: e nodeSelector: run.googleapis.com/accelerator: GPU_TYPE.

  3. Crea o aggiorna il pool di worker utilizzando il seguente comando:

    gcloud beta run worker-pools replace workerpool.yaml

Librerie dei driver

Per impostazione predefinita, tutte le librerie dei driver GPU NVIDIA L4 e NVIDIA RTX PRO 6000 Blackwell 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 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 superiore alla 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 di 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.