Configurar GPUs para jobs do Cloud Run

Esta página descreve a configuração de GPU para seus jobs do Cloud Run. As GPUs funcionam bem para cargas de trabalho de IA, como treinar modelos de linguagem grandes (LLMs) usando seus frameworks preferidos, realizar inferência em lote ou off-line em LLMs e lidar com outras tarefas que exigem computação intensiva, como processamento de vídeo e renderização de gráficos como jobs em segundo plano. O Google fornece a GPU NVIDIA RTX PRO 6000 Blackwell com 96 GB de memória de GPU (VRAM) e as GPUs NVIDIA L4 com 24 GB de memória de GPU (VRAM), que é separada da memória da instância.

A GPU no Cloud Run é totalmente gerenciada, sem drivers ou bibliotecas extras necessários. O recurso GPU oferece disponibilidade sob demanda sem necessidade de reservas, semelhante à maneira como CPU e memória sob demanda funcionam no Cloud Run.

As instâncias do Cloud Run com uma GPU NVIDIA RTX PRO 6000 Blackwell ou L4 anexada e drivers pré-instalados são iniciadas em aproximadamente cinco segundos. Nesse momento, os processos em execução no seu contêiner podem começar a usar a GPU.

Você pode configurar uma GPU por instância do Cloud Run. Se você usar contêineres secundários a GPU só pode ser conectada a um único contêiner.

Tipos de GPU compatíveis

O Cloud Run é compatível com dois tipos de GPUs:

  • GPU NVIDIA RTX PRO 6000 Blackwell com a versão atual do driver NVIDIA: 580.x.x (13.0). Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário usar pelo menos 20 CPUs e 80 GiB de memória.
  • GPU L4 com a versão atual do driver NVIDIA: 580.x.x (13.0). Para GPUs L4, é necessário usar pelo menos 4 CPUs e 16 GiB de memória.

Regiões compatíveis

As seguintes regiões são compatíveis com a GPU NVIDIA RTX PRO 6000 Blackwell:

  • asia-southeast1 (Singapura).
  • asia-south2 (Déli, Índia).
  • europe-west4 (Países Baixos) ícone de folha Baixo CO2
  • us-central1 (Iowa) ícone de folha Baixo CO2

As seguintes regiões são compatíveis com a GPU L4:

  • asia-southeast1 (Singapura)
  • asia-south1 (Mumbai) . Essa região está disponível apenas para convidados. Entre em contato com sua equipe de contas do Google se tiver interesse nessa região.
  • europe-west1 (Bélgica) ícone de folha Baixo CO2
  • europe-west4 (Países Baixos) ícone de folha Baixo CO2
  • us-central1 (Iowa) ícone de folha Baixo CO2 . O escalonamento de recursos adicionais nessa região pode exigir uma solicitação de aumento de cota. Entre em contato com a equipe de contas do Google se tiver interesse nessa região.
  • us-east4 (Norte da Virgínia) . O escalonamento de recursos adicionais nessa região pode exigir uma solicitação de aumento de cota. Entre em contato com a equipe de contas do Google se tiver interesse nessa região.

Impacto no preço

Consulte os detalhes de preços de GPU em Preços do Cloud Run. Observe os seguintes requisitos e considerações:

  • A GPU para jobs segue os preços sem redundância zonal.
  • As configurações de CPU e memória do recurso.
  • A GPU é cobrada de acordo com a duração total do ciclo de vida da instância.

Redundância não zonal de GPU

O recurso de jobs do Cloud Run oferece suporte à redundância não zonal apenas para instâncias com GPU. Com a redundância não zonal ativada, o Cloud Run tenta fazer o failover de jobs com GPU ativada da melhor maneira possível. O Cloud Run encaminha as execuções de jobs para outras zonas somente se houver capacidade de GPU suficiente disponível no momento. Essa opção não garante capacidade reservada para cenários de failover, mas resulta em um custo menor por segundo de GPU.

Consulte Configurar um job do Cloud Run com GPU para saber como ativar a redundância não zonal.

Solicitar aumento de cota

A cota para GPUs do Cloud Run nvidia-rtx-pro-6000 é concedida em milliGPUs. Os projetos que usam GPUs nvidia-rtx-pro-6000 em uma região pela primeira vez recebem automaticamente uma cota de 3.000 milliGPU (redundância zonal desativada) quando a primeira implantação é criada. Isso equivale a 3 GPUs. Os projetos que usam GPUs do Cloud Run nvidia-l4 em uma região pela primeira vez recebem automaticamente uma cota de 3 GPUs (redundância zonal desativada) quando a primeira implantação é criada.

Essa concessão automática de cota está sujeita à disponibilidade, dependendo da sua capacidade de CPU e memória. Isso limita a contagem de GPUs que podem estar ativas em todos os serviços, jobs e pools de workers do projeto em um determinado momento.

Se você precisar de mais GPUs do Cloud Run para jobs, solicite um aumento de cota.

Antes de começar

A lista a seguir descreve os requisitos e as limitações ao usar GPUs no Cloud Run:

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
  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. Ative a API Cloud Run, se ainda não tiver feito isso.

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar a API

  7. Consulte Práticas recomendadas: jobs do Cloud Run com GPUs para otimizar o desempenho ao usar jobs do Cloud Run com GPU.

Funções exigidas

Para receber as permissões necessárias e configurar jobs do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM nos jobs:

  • Desenvolvedor do Cloud Run (roles/run.developer): o job do Cloud Run
  • Usuário da conta de serviço (roles/iam.serviceAccountUser) – a identidade de serviço

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o job do Cloud Run interagir com APIs doGoogle Cloud , como bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Configurar um job do Cloud Run para usar GPUs

É possível configurar um job do Cloud Run para usar GPUs usando o Google Cloud console, a CLI gcloud ou o YAML:

Console

  1. No console do Google Cloud , acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Selecione Jobs no menu de navegação do Cloud Run:

    1. Se você estiver criando um novo job, clique em Implantar contêiner para preencher a página inicial de configurações do job.

    2. Se você estiver configurando um job, selecione-o e clique em Ver e editar a configuração do job.

  3. Clique em Contêineres, conexões, segurança para expandir a página de propriedades do job.

  4. Na guia Contêineres, configure a memória e a CPU de acordo com os requisitos em Tipos de GPU compatíveis.

  5. Marque a caixa de seleção GPU.

  6. Selecione o tipo de GPU no menu Tipo de GPU e o número de GPUs no menu Número de GPUs.

  7. Clique em Criar ou Atualizar.

gcloud

Para ativar a redundância não zonal, especifique --no-gpu-zonal-redundancy. Isso é necessário para usar a GPU com jobs.

  • Para criar um job com GPUs ativadas, execute o seguinte comando:

    gcloud run jobs create JOB \
      --image=IMAGE_URL \
      --gpu=1 \
      --no-gpu-zonal-redundancy

    Substitua:

    • JOB: o nome do seu job do Cloud Run;
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • Para atualizar a configuração da GPU de um job, execute o seguinte comando:

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

    Substitua:

    • JOB: o nome do seu job do Cloud Run;
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • CPU: o número de CPUs. Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário especificar pelo menos 20 CPU. Para a GPU L4, é preciso especificar pelo menos 4 CPU.
    • MEMORY: a quantidade de memória. Para a GPU NVIDIA RTX PRO 6000 Blackwell, especifique pelo menos 80Gi (80 GiB). Para a GPU L4, é preciso especificar pelo menos 16Gi (16 GiB).
    • GPU_NUMBER: o valor 1 (um). Se isso não for especificado, mas um GPU_TYPE estiver presente, o padrão será 1.
    • GPU_TYPE: o tipo de GPU. Para a GPU NVIDIA RTX PRO 6000 Blackwell, insira nvidia-rtx-pro-6000. Para a GPU L4, insira nvidia-l4 (nvidia-L4 L minúsculo, não o valor numérico 14).
    • PARALLELISM: um valor inteiro menor que o menor valor dos limites de cota aplicáveis que você alocou para o projeto.

YAML

Defina a anotação run.googleapis.com/gpu-zonal-redundancy-disabled: como true. Isso permite a redundância não zonal, que é necessária para GPUs para jobs.

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB --format export > job.yaml
  2. Atualize o atributo nvidia.com/gpu, annotations: run.googleapis.com/launch-stage para a fase de lançamento e nodeSelector:
    run.googleapis.com/accelerator
    :

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
      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

    Substitua:

    • JOB: o nome do seu job do Cloud Run;
    • REGION: a região do Google Cloud . Por exemplo, europe-west1.
    • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • CPU: o número de CPUs. Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário especificar pelo menos 20 CPU. Para a GPU L4, é preciso especificar pelo menos 4 CPU.
    • MEMORY: a quantidade de memória. Para a GPU NVIDIA RTX PRO 6000 Blackwell, especifique pelo menos 80Gi (80 GiB). Para a GPU L4, é necessário especificar pelo menos 16Gi (16 GiB).
    • GPU_NUMBER: o valor 1 (um) porque é possível anexar apenas uma GPU por instância do Cloud Run.
    • GPU_TYPE: o tipo de GPU. Para a GPU NVIDIA RTX PRO 6000 Blackwell, insira nvidia-rtx-pro-6000. Para a GPU L4, insira o valor nvidia-l4 (nvidia-L4 com L minúsculo, não o valor numérico 14).
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    O comando gcloud run jobs replace usa o arquivo job.yaml por padrão, se ele estiver presente.

Conferir as configurações da GPU

Para ver as configurações atuais de GPU do job do Cloud Run, use o console do Google Cloud ou a Google Cloud CLI:

Console

  1. No console do Google Cloud , acesse a página de jobs do Cloud Run:

    Acessar jobs do Cloud Run

  2. Clique no job para abrir a página Detalhes do job.

  3. Clique em Exibir e editar a configuração do job.

  4. Localize a configuração da GPU nos detalhes da configuração.

gcloud

  1. Execute este comando:

    gcloud run jobs describe JOB
  2. Localize a configuração da GPU na configuração retornada.

Remover recursos de GPU de um job

É possível remover recursos de GPU de um job usando o Google Cloud console, a CLI gcloud ou o YAML:

Console

  1. No console do Google Cloud , acesse a página do Cloud Run:

    Acessar o Cloud Run

  2. Selecione Jobs no menu de navegação do Cloud Run:

    1. Se você estiver criando um novo job, clique em Implantar contêiner para preencher a página inicial de configurações do job.

    2. Se você estiver configurando um job, selecione-o e clique em Ver e editar a configuração do job.

  3. Clique em Contêineres, conexões, segurança para expandir a página de propriedades do job.

  4. Na guia Contêineres, desmarque a caixa de seleção GPU.

  5. Clique em Atualizar.

gcloud

Para remover recursos de GPU do job do Cloud Run, defina o número de GPUs como 0 usando o comando gcloud run jobs update:

gcloud run jobs update JOB --gpu 0

Substitua JOB pelo nome do job do Cloud Run.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB --format export > job.yaml
  2. Exclua as linhas nvidia.com/gpu:, run.googleapis.com/gpu-zonal-redundancy-disabled: 'true' e nodeSelector:
    run.googleapis.com/accelerator: GPU_TYPE
    .

  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

    O comando gcloud run jobs replace usa o arquivo job.yaml por padrão, se ele estiver presente.

Bibliotecas de drivers

Por padrão, todas as bibliotecas de drivers da GPU NVIDIA RTX PRO 6000 Blackwell e da GPU NVIDIA L4 são montadas em /usr/local/nvidia/lib64. O Cloud Run anexa automaticamente esse caminho à variável de ambiente LD_LIBRARY_PATH (ou seja, ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64) do contêiner com a GPU. Isso permite que o vinculador dinâmico encontre as bibliotecas de drivers da NVIDIA. O vinculador pesquisa e resolve caminhos na ordem listada na variável de ambiente LD_LIBRARY_PATH. Os valores especificados nessa variável têm precedência sobre o caminho padrão das bibliotecas de driver do Cloud Run /usr/local/nvidia/lib64.

Se você quiser usar uma versão do CUDA maior que 13.0, a maneira mais fácil é depender de uma imagem base NVIDIA mais recente com pacotes de compatibilidade futura já instalados. Outra opção é instalar manualmente os pacotes de compatibilidade futura da NVIDIA e adicioná-los a LD_LIBRARY_PATH. Consulte a matriz de compatibilidade da NVIDIA para determinar quais versões do CUDA são compatíveis com a versão do driver fornecido.

Sobre GPUs e paralelismo

Se você estiver executando tarefas paralelas em uma execução de job, determine e defina o valor de paralelismo como menor que a cota de GPU sem redundância zonal alocada para seu projeto. Para solicitar um aumento de cota, consulte Como aumentar a cota. As tarefas de GPU começam o mais rápido possível e vão até um máximo que varia de acordo com a cota de GPU alocada para o projeto e a região selecionada. As implantações do Cloud Run vão falhar se você definir o paralelismo como um valor maior que o limite da cota de GPU.

Para calcular a cota de GPU que o job usa por execução, multiplique o número de GPUs por tarefa de job pelo valor de paralelismo. Por exemplo, se você tiver uma cota de GPU de 10 e implantar o job do Cloud Run com --gpu=1, --parallelism=10, o job vai consumir toda a cota de 10 GPUs. Como alternativa, se você implantar com --gpu=1, --parallelism=20, as implantações vão falhar.

Para mais informações, consulte Práticas recomendadas: jobs do Cloud Run com GPUs.

A seguir

Consulte Executar inferência de IA no Cloud Run com GPUs para ver tutoriais.