Supporto GPU per i servizi

Questa pagina descrive la configurazione della GPU per i 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à computazionale come la transcodifica video e il rendering 3D. Google fornisce GPU NVIDIA RTX PRO 6000 Blackwell con 96 GB di memoria GPU (VRAM) e GPU NVIDIA L4 con 24 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 di un servizio Cloud Run configurate per utilizzare la GPU possono fare lo scale down a zero per risparmiare sui costi quando non sono in uso.

Le istanze Cloud Run con una GPU NVIDIA RTX PRO 6000 Blackwell o L4 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 NVIDIA RTX PRO 6000 Blackwell con la versione corrente del driver NVIDIA: 580.xx (13.0). Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi utilizzare un minimo di 20 CPU e 80 GiB di memoria.
  • L4 GPU con la versione corrente del driver NVIDIA: 580.xx (13.0). Per le GPU L4, devi utilizzare un minimo di 4 CPU e 16 GiB di memoria.

Aree geografiche supportate

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

La GPU L4 supporta le seguenti regioni:

  • asia-southeast1 (Singapore)
  • asia-south1 (Mumbai) . Questa regione è disponibile solo su invito. Se ti interessa questa regione, contatta il team del 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 Bassa CO2 . L'ulteriore scalabilità delle risorse in questa regione potrebbe richiedere una richiesta di aumento della quota. Se ti interessa questa regione, contatta il team del tuo Account Google.
  • us-east4 (Virginia del Nord) . Un ulteriore ampliamento delle risorse in questa regione potrebbe richiedere una richiesta di aumento delle quote. Se sei interessato a questa regione, contatta il tuo team di account Google.

Impatto sui prezzi

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

  • Non sono previsti costi per singola 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.
  • Quando si distribuisce un servizio o una funzione Cloud Run dal codice sorgente con le GPU abilitate, Cloud Run utilizzae2-highcpu-8 tipo di macchina, invece dell'impostazione predefinitae2-standard-2 tipo di macchina per compilare il codice sorgente. Il tipo di macchina più grande offre un maggiore supporto della CPU e una larghezza di banda di rete più elevata, il che si traduce in tempi di compilazione più rapidi.
  • 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 distribuisce il 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 si lavora con le risorse GPU, è importante tenere presente che queste hanno specifici limiti di capacità. 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 servizi 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 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 zonale disattivata: Cloud Run tenta il failover per i carichi di lavoro GPU in base al massimo sforzo 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 Cloud Run GPU dipende dal fatto che il servizio utilizzi la ridondanza zonale o la ridondanza non zonale option. Per informazioni dettagliate, consulta la pagina SLA.

Richiedi un aumento della quota

La quota per le GPU nvidia-rtx-pro-6000 di Cloud Run viene concessa in milligPU. Ai progetti che utilizzano nvidia-rtx-pro-6000 GPU in una regione per la prima volta verrà automaticamente assegnata una quota di 3.000 milliGPU (ridondanza zonale disattivata) al momento della creazione del primo deployment. Ciò equivale a 3 GPU. Ai progetti che utilizzano per la prima volta le GPU Cloud Run nvidia-l4 in una regione vengono automaticamente assegnate 3 quote GPU (ridondanza zonale disattivata) al momento della creazione del 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 di quotazione
GPU NVIDIA RTX PRO 6000 Blackwell con ridondanza zonale disattivata off (prezzo inferiore) Richiedi quota GPU senza ridondanza zonale
GPU NVIDIA RTX PRO 6000 Blackwell con ridondanza zonale attivata (prezzo più alto) Richiedi quota GPU con ridondanza zonale
GPU L4 con ridondanza zonale disattivata (prezzo inferiore) Richiedi quota GPU senza ridondanza zonale
GPU L4 con ridondanza zonale attivata (prezzo più alto) Richiedi quota GPU con ridondanza zonale

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 carichi di lavoro.
  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 dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilitare l'API

  7. Richiedi la quota necessaria.
  8. Consulta Best practices: AI inference on Cloud Run with GPUs per consigli sulla creazione dell'immagine container e sul caricamento di modelli di grandi dimensioni.
  9. Assicurati che il tuo servizio Cloud Run abbia le seguenti configurazioni:

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare e distribuire i servizi Cloud Run, chiedi al tuo amministratore di concederti i seguenti ruoli IAM sui servizi:

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

Se stai distribuendo un servizio o una funzione dal codice sorgente, devi anche disporre di ruoli aggiuntivi sul tuo progetto e sull'account di servizio Cloud Build.

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 servizio 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.

Configurare 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.

È possibile 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 Servizi dal menu di navigazione di Cloud Run e fai clic su Distribuisci container per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio, quindi fai clic su Contenitori, Networking, Sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Contenitori.

  5. Configura CPU, memoria, concorrenza, ambiente di esecuzione e probe di avvio seguendo i consigli riportati in Prima di iniziare.

  6. Seleziona la casella di controllo GPU, quindi seleziona Tipo di GPU e Numero di GPU dai rispettivi menu.

  7. Per impostazione predefinita, la ridondanza di zona è attivata per i nuovi servizi. Selezionando la casella di controllo GPU vengono visualizzate le opzioni di ridondanza GPU.

    1. Per disattivare la ridondanza a livello di zona, seleziona Nessuna ridondanza a livello di zona.
    2. Per attivare la ridondanza a livello di zona, seleziona Ridondanza a livello di zona.
  8. Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.

gcloud

Per creare un servizio con GPU abilitata, utilizza il comando gcloud run deploy:

  • Per distribuire un container:

      gcloud run deploy SERVICE \
          --image IMAGE_URL \
          --gpu 1

    Sostituisci quanto segue:

    • SERVICE: il nome del tuo servizio Cloud Run.
    • IMAGE_URL: 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 segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • Per eseguire il deployment dal codice sorgente:

      gcloud run deploy SERVICE \
          --source . \
          --gpu 1

Per aggiornare la configurazione della GPU per un servizio, utilizza il comando gcloud run services update. Ad esempio, per aggiornare un servizio esistente che specifica un'immagine container:

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

  • SERVICE: il nome del tuo servizio Cloud Run.
  • IMAGE_URL: 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 segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CPU: il numero di CPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 20 CPU. Per la GPU L4, è necessario specificare almeno 4 CPU.
  • MEMORY: la quantità di memoria. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 80Gi (80 GiB). Per la GPU L4, devi specificare almeno 16Gi (16 GiB).
  • GPU_NUMBER: il valore 1 (uno). Se non è specificato, ma è presente un valore GPU_TYPE, il valore predefinito è 1.
  • GPU_TYPE: il tipo di GPU. GPU NVIDIA RTX PRO 6000 Blackwell, inserisci nvidia-rtx-pro-6000. Per la GPU L4, inserisci il valore nvidia-l4 (nvidia-L4 L minuscola, non il valore numerico quattordici).
  • MAX_INSTANCE: il numero massimo di istanze. Questo numero non può superare la quota GPU assegnata al tuo progetto.
  • 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 servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna l'attributo nvidia.com/gpu: e nodeSelector:
    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 quanto segue:

    • SERVICE: il nome del tuo servizio Cloud Run.
    • IMAGE_URL: 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 segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • CONTAINER_PORT: la porta del container impostata per il tuo servizio.
    • CPU: il numero di CPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 20 CPU. Per la GPU L4, devi specificare almeno 4 CPU.
    • MEMORY: la quantità di memoria. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 80Gi (80 GiB). Per la GPU L4, devi specificare almeno 16Gi (16 GiB).
    • GPU_TYPE: il tipo di GPU. GPU NVIDIA RTX PRO 6000 Blackwell, inserisci nvidia-rtx-pro-6000. Per la GPU L4, inserisci il valore nvidia-l4 (nvidia-L4 L minuscola, non il valore numerico quattordici).
    • MAX_INSTANCE: il numero massimo di istanze. Questo numero non può superare la quota GPU assegnata al tuo progetto.
    • GPU_ZONAL_REDUNDANCY: false per attivare la ridondanza zonale della GPU o true per disattivarla.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Il comando gcloud run services replace utilizza per impostazione predefinita il file service.yaml, se presente.

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

  • SERVICE: il nome del tuo servizio Cloud Run.
  • GPU_ZONAL_REDUNDANCY: false per attivare la ridondanza zonale della GPU o true per disattivarla.
  • IMAGE_URL: 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 segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CPU: il numero di CPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 20 CPU. Per la GPU L4, è necessario specificare almeno 4 CPU.
  • MEMORY: la quantità di memoria. Per la GPU NVIDIA RTX PRO 6000 Blackwell, devi specificare almeno 80Gi (80 GiB). Per la GPU L4, devi specificare almeno 16Gi (16 GiB).
  • GPU_TYPE: il tipo di GPU. Per la GPU NVIDIA RTX PRO 6000 Blackwell, inserisci nvidia-rtx-pro-6000. Per la GPU L4, inserisci il valore nvidia-l4 (nvidia-L4 L minuscola, non il valore numerico quattordici).

Visualizza le impostazioni della GPU

Per visualizzare le impostazioni GPU correnti per il servizio Cloud Run:

Console

  1. Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.

  3. Fai clic sulla scheda Contenitori per visualizzare le impostazioni.

gcloud

  1. Utilizza il seguente comando:

    gcloud run services describe SERVICE
  2. Individua l'impostazione GPU nella configurazione restituita.

Rimuovi la 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 Servizi dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio, quindi fai clic su Contenitori, Networking, Sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Contenitori.

  5. Deseleziona la casella di controllo GPU.

  6. Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.

gcloud

Per rimuovere la GPU, impostare 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

  1. 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
  2. Elimina le righe nvidia.com/gpu: e nodeSelector: run.googleapis.com/accelerator: GPU_TYPE.

  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Il comando gcloud run services replace utilizza per impostazione predefinita il file service.yaml, se presente.

Librerie di driver

Per impostazione predefinita, tutte le librerie dei driver per GPU NVIDIA RTX PRO 6000 Blackwell e GPU NVIDIA L4 vengono 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 dei driver di Cloud Run /usr/local/nvidia/lib64.

Se si desidera utilizzare una versione di CUDA superiore alla 13.0, il modo più semplice è quello di dipendere da un'immagine base NVIDIA più recente con i pacchetti di compatibilità futuri 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.

Informazioni sulle GPU e sul numero massimo di istanze

Il numero di istanze con GPU è limitato in due modi:

Passaggi successivi

Per i tutorial, consulta Esegui l'inferenza AI su Cloud Run con le GPU.