Configurare le GPU per i job Cloud Run

Questa pagina descrive la configurazione della GPU per i tuoi job Cloud Run. Le GPU funzionano bene per i workload 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 della grafica come job in background. 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 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 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.x.x (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).
  • 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:

Ridondanza non zonale della GPU

La funzionalità Cloud Run Jobs fornisce il supporto della ridondanza non zonale solo per le istanze abilitate alla GPU. Con la ridondanza non a livello di zona abilitata, Cloud Run tenta il failover per i job abilitati alla GPU nel miglior modo possibile. 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.

Per informazioni dettagliate sull'attivazione della ridondanza non a livello di zona, consulta Configurare un job Cloud Run con GPU.

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 le GPU nvidia-rtx-pro-6000 di Cloud Run viene concessa in milliGPU. Ai progetti che utilizzano 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.

Tieni presente che questa concessione automatica di quota è soggetta a disponibilità a seconda della capacità di CPU e memoria. In questo modo si limita il conteggio delle GPU che potrebbero essere attive in tutti i servizi, i job e i pool di worker del progetto in un determinato momento.

Se hai bisogno di GPU Cloud Run aggiuntive per i job, richiedi un aumento della 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. Consulta Best practice: job Cloud Run con GPU per ottimizzare le prestazioni quando utilizzi i job Cloud Run con la 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à 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 job 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 job Cloud Run per utilizzare le GPU

Puoi utilizzare la console Google Cloud , Google Cloud CLI o YAML per configurare la GPU.

Console

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

    Vai a Cloud Run

  2. Fai clic su Esegui il deployment del container per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, seleziona il job, quindi fai clic su Visualizza e modifica la configurazione del job.

  3. Fai clic su Container, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Contenitore.

    immagine

    • Configura CPU, memoria e probe di avvio seguendo i consigli riportati in Prima di iniziare.
    • Seleziona la casella di controllo GPU. Poi seleziona il tipo di GPU dal menu Tipo di GPU e il numero di GPU dal menu Numero di GPU.
  5. Fai clic su Crea o Aggiorna.

gcloud

Per attivare la ridondanza non zonale, devi specificare --no-gpu-zonal-redundancy. Questo passaggio è necessario per utilizzare la GPU con i job.

Per creare un job con le GPU abilitate, utilizza il comando gcloud run jobs create:

    gcloud run jobs create JOB_NAME \
      --image=IMAGE \
      --gpu=1 \
      --no-gpu-zonal-redundancy

Sostituisci quanto segue:

  • JOB_NAME: il nome del job Cloud Run.
  • IMAGE_URL: 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 run jobs update:

    gcloud run jobs update JOB_NAME \
      --image IMAGE_URL \
      --cpu CPU \
      --memory MEMORY \
      --gpu GPU_NUMBER \
      --gpu-type GPU_TYPE \
      --parallelism PARALLELISM \
      --no-gpu-zonal-redundancy

Sostituisci quanto segue:

  • JOB_NAME: il nome del job Cloud Run.
  • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job: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_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.
  • PARALLELISM: un valore intero inferiore al valore più basso dei limiti di quota applicabili che hai allocato per il tuo progetto.

YAML

Devi impostare l'annotazione run.googleapis.com/gpu-zonal-redundancy-disabled: su "true". In questo modo viene abilitata la ridondanza non a livello di zona, necessaria per le GPU per i job.

  1. 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
  2. Aggiorna l'attributo nvidia.com/gpu, annotations: run.googleapis.com/launch-stage per la fase di lancio e nodeSelector:
    run.googleapis.com/accelerator
    :

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/gpu-zonal-redundancy-disabled: 'true'
        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 quanto segue:

    • JOB_NAME: il nome del job Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job: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_NUMBER: il valore 1 (uno) perché supportiamo solo l'attacco di una GPU per istanza Cloud Run.
    • 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.
  3. 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 tuo job Cloud Run:

Console

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

    Vai ai job Cloud Run

  2. Fai clic sull'offerta di lavoro che ti interessa per aprire la pagina Dettagli offerta di lavoro.

  3. Fai clic su Visualizza e modifica la configurazione del job.

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

gcloud

  1. Utilizza il seguente comando:

    gcloud run jobs describe JOB_NAME
  2. Individua l'impostazione della GPU nella configurazione restituita.

Scollega le risorse GPU da un job

Puoi scollegare le risorse GPU da un job utilizzando la console Google Cloud , Google Cloud CLI o YAML.

Console

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

    Vai a Cloud Run

  2. Nell'elenco dei job, fai clic su un job per aprirne i dettagli.

  3. Fai clic su Visualizza e modifica la configurazione del job.

  4. Fai clic su Container, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  5. Fai clic sulla scheda Contenitore.

    immagine

    • Deseleziona la casella di controllo GPU.
  6. Fai clic su Aggiorna.

gcloud

Per scollegare le risorse GPU dal job Cloud Run, imposta il numero di GPU su 0 utilizzando il comando gcloud run jobs update:

  gcloud run jobs update JOB_NAME --gpu 0
  

Sostituisci JOB_NAME con il nome del tuo job Cloud Run.

YAML

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

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

    gcloud run jobs replace job.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.

Informazioni su GPU e parallelismo

Se esegui attività parallele in un'esecuzione di job, determina e imposta il valore di parallelismo su un valore inferiore alla quota di GPU senza ridondanza a livello di zona allocata per il tuo progetto. 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 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 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 saperne di più, consulta Best practice: job Cloud Run con GPU.

Passaggi successivi

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