Suporte a GPUs para serviços

Esta página descreve a configuração de GPU para seus serviços do Cloud Run. As GPUs funcionam bem para cargas de trabalho de inferência de IA, como modelos de linguagem grandes (LLMs) ou outros casos de uso não relacionados à IA que exigem computação intensiva, como transcodificação de vídeo e renderização 3D. O Google fornece GPUs NVIDIA L4 com 24 GB de memória de GPU (VRAM) e GPUs NVIDIA RTX PRO 6000 Blackwell (prévia) com 96 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 de um serviço do Cloud Run configurado para usar GPU podem reduzir escala vertical para zero para economia de custos quando não estiverem em uso.

As instâncias do Cloud Run com uma GPU L4 ou NVIDIA RTX PRO 6000 Blackwell 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 L4 com a versão atual do driver NVIDIA: 535.216.03 (12.2). Para GPUs L4, é necessário usar pelo menos quatro CPUs e 16 GiB de memória.
  • GPU NVIDIA RTX PRO 6000 Blackwell com a versão atual do driver NVIDIA: 580.x.x (13.0) (prévia). Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário usar pelo menos 20 CPUs e 80 GiB de memória.

Regiões compatíveis

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 por convite. 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 . Essa região está disponível apenas por convite. Entre em contato com sua equipe de contas do Google se tiver interesse nessa região.
  • us-east4 (Norte da Virgínia)

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

  • asia-southeast1 (Singapura). Essa região está disponível apenas por convite. Entre em contato com sua equipe de contas do Google se tiver interesse nessa região.
  • asia-south2 (Déli, Índia). Essa região está disponível apenas por convite. Entre em contato com sua equipe de contas do Google se tiver interesse nessa região.
  • europe-west4 (Países Baixos) ícone de folha Baixo CO2
  • us-central1 (Iowa) ícone de folha Baixo CO2

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:

Opções de redundância zonal de GPU

Por padrão, o Cloud Run implanta seu serviço em várias zonas de uma região. Essa arquitetura oferece resiliência inerente: se uma zona sofrer uma interrupção, o Cloud Run vai rotear automaticamente o tráfego da zona afetada para zonas íntegras na mesma região.

Ao trabalhar com recursos de GPU, lembre-se de que eles têm restrições de capacidade específicas. Durante uma interrupção zonal, o mecanismo de failover padrão para cargas de trabalho de GPU depende de capacidade de GPU não utilizada suficiente disponível nas zonas íntegras restantes. Devido à natureza restrita das GPUs, essa capacidade nem sempre está disponível.

Para aumentar a disponibilidade dos serviços acelerados por GPU durante interrupções do serviço na zona, configure a redundância zonal especificamente para GPUs:

  • Redundância zonal ativada (padrão): o Cloud Run reserva capacidade de GPU para seu serviço em várias zonas. Isso aumenta significativamente a probabilidade de que seu serviço possa processar o tráfego redirecionado de uma zona afetada, oferecendo maior confiabilidade durante falhas zonais com custo adicional por segundo de GPU.

  • Redundância zonal desativada: o Cloud Run tenta fazer failover para cargas de trabalho de GPU com base no melhor esforço. O tráfego é encaminhado para outras zonas apenas se houver capacidade de GPU suficiente disponível naquele momento. Essa opção não garante capacidade reservada para cenários de failover, mas resulta em um custo menor por segundo de GPU.

SLA

O SLA da GPU do Cloud Run depende de o serviço usar a opção de redundância zonal ou não zonal. Consulte a página do SLA para mais detalhes.

Solicitar aumento de cota

Os projetos que usam GPUs do Cloud Run nvidia-l4 em uma região pela primeira vez recebem automaticamente uma cota de três GPUs (redundância zonal desativada) quando a primeira implantação é criada. A cota de GPU do Cloud Run nvidia-rtx-pro-6000 é concedida em milliGPUs. Os projetos que usam a GPU 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 três GPUs.

Se você precisar de mais GPUs do Cloud Run, solicite um aumento de cota para seu serviço do Cloud Run. Use os links fornecidos nos botões a seguir para solicitar a cota necessária.

Cota necessária Link de cota
GPU L4 com redundância zonal desativada (preço mais baixo) Solicitar cota de GPU sem redundância zonal
GPU L4 com redundância zonal ativada (preço mais alto) Solicitar cota de GPU com redundância zonal
GPU NVIDIA RTX PRO 6000 Blackwell com redundância zonal desativada (preço mais baixo) Solicitar cota de GPU sem redundância zonal
GPU NVIDIA RTX PRO 6000 Blackwell com redundância zonal ativada (preço mais alto) Solicitar cota de GPU com redundância zonal

Para mais informações sobre como solicitar aumentos de cota, consulte Como aumentar a 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 Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  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. ativar a API Cloud Run;

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar a API

  7. Solicite a cota necessária.
  8. Consulte as práticas recomendadas: inferência de IA no Cloud Run com GPUs para conferir recomendações sobre como criar a imagem do contêiner e carregar modelos grandes.
  9. Verifique se o serviço do Cloud Run tem as seguintes configurações:

Funções exigidas

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

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

Se você estiver implantando um serviço ou uma função do código-fonte, também precisará ter outros papéis concedidos a você no projeto e na conta de serviço do Cloud Build.

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 serviço do Cloud Run interage com APIsGoogle Cloud , como as 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 serviço do Cloud Run com GPU

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

É possível usar o console Google Cloud , a Google Cloud CLI ou o YAML para configurar a GPU.

Console

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Selecione Serviços no menu de navegação do Cloud Run e clique em Implantar contêiner para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, Rede e segurança para expandir essa página.

  4. Clique na guia Contêiner.

    imagem

    • Configurar CPU, memória, simultaneidade, ambiente de execução e a sondagem de inicialização, seguindo as recomendações em Antes de começar.
    • Marque a caixa de seleção da GPU e selecione o tipo de GPU no menu Tipo de GPU e o número de GPUs no menu Número de GPUs.
    • Por padrão, a redundância zonal está ativada para novos serviços. Para mudar a configuração atual, selecione a caixa de seleção "GPU" e mostre as opções de Redundância de GPU.
      • Selecione Sem redundância zonal para desativar a redundância zonal.
      • Selecione Redundância zonal para ativar esse recurso.
  5. Clique em Criar ou Implantar.

gcloud

Para criar um serviço com a GPU ativada, use o comando gcloud run deploy:

  • Para implantar um contêiner, siga estas etapas:

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

    Substitua:

    • SERVICE: o nome do seu serviço do Cloud Run.
    • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • Para implantar a partir do código-fonte:

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

Para atualizar a configuração de GPU de um serviço, use o comando gcloud run services update. Por exemplo, para atualizar um serviço que especifica uma imagem de contêiner:

  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
    

Substitua:

  • SERVICE: o nome do seu serviço do Cloud Run.
  • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CPU: o número de CPUs. Para a GPU L4, é preciso especificar pelo menos 4 CPUs. Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário especificar pelo menos 20 CPU.
  • MEMORY: a quantidade de memória. Para a GPU L4, especifique pelo menos 16Gi (16 GiB). Para a GPU NVIDIA RTX PRO 6000 Blackwell, especifique pelo menos 80Gi (80 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 L4, insira o valor nvidia-l4 (nvidia-L4 L minúsculo, não o valor numérico 14). GPU NVIDIA RTX PRO 6000 Blackwell, insira nvidia-rtx-pro-6000.
  • MAX_INSTANCE: o número máximo de instâncias. Esse número não pode exceder a cota de GPU alocada para o projeto.
  • GPU_ZONAL_REDUNDANCY: no-gpu-zonal-redundancy para desativar a redundância zonal ou gpu-zonal-redundancy para ativar.

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 services describe SERVICE --format export > service.yaml
  2. Atualize o atributo 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

    Substitua:

    • SERVICE: o nome do seu serviço do Cloud Run.
    • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • CONTAINER_PORT: a porta do contêiner definida para o serviço.
    • CPU: o número de CPUs. Para a GPU L4, é preciso especificar pelo menos 4 CPUs. Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário especificar pelo menos 20 CPU.
    • MEMORY: a quantidade de memória. Para a GPU L4, especifique pelo menos 16Gi (16 GiB). Para a GPU NVIDIA RTX PRO 6000 Blackwell, especifique pelo menos 80Gi (80 GiB).
    • GPU_TYPE: o tipo de GPU. Para a GPU L4, insira o valor nvidia-l4 (nvidia-L4 L minúsculo, não o valor numérico 14). GPU NVIDIA RTX PRO 6000 Blackwell, insira nvidia-rtx-pro-6000.
    • MAX_INSTANCE: o número máximo de instâncias. Esse número não pode exceder a cota de GPU alocada para o projeto.
    • GPU_ZONAL_REDUNDANCY: false para ativar a redundância zonal de GPU ou true para desativar.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Adicione o seguinte a um recurso google_cloud_run_v2_service na configuração do 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"
    }
  }
}

Substitua:

  • SERVICE: o nome do seu serviço do Cloud Run.
  • GPU_ZONAL_REDUNDANCY: false para ativar a redundância zonal de GPU ou true para desativar.
  • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CPU: o número de CPUs. Para a GPU L4, é preciso especificar pelo menos 4 CPUs. Para a GPU NVIDIA RTX PRO 6000 Blackwell, é necessário especificar pelo menos 20 CPU.
  • MEMORY: a quantidade de memória. Para a GPU L4, especifique pelo menos 16Gi (16 GiB). Para a GPU NVIDIA RTX PRO 6000 Blackwell, especifique pelo menos 80Gi (80 GiB).
  • GPU_TYPE: o tipo de GPU. Para a GPU L4, insira o valor nvidia-l4 (nvidia-L4 L minúsculo, não o valor numérico 14). Para a GPU NVIDIA RTX PRO 6000 Blackwell, insira nvidia-rtx-pro-6000.

Conferir as configurações da GPU

Para ver as configurações atuais da CPU do serviço do Cloud Run, faça o seguinte:

Console

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

    Acessar o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração da CPU está listada na guia Contêiner.

gcloud

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração da GPU na configuração retornada.

Remover GPU

É possível remover a GPU usando o Google Cloud console, a Google Cloud CLI ou o YAML.

Console

  1. No Google Cloud console, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Selecione Serviços no menu de navegação do Cloud Run e clique em Implantar contêiner para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações de serviço e clique em Contêineres, volumes, Rede e segurança para expandir essa página.

  4. Clique na guia Contêiner.

    imagem

    • Desmarque a caixa de seleção da GPU.
  5. Clique em Criar ou Implantar.

gcloud

Para remover a GPU, defina o número de GPUs como 0 usando o comando gcloud run services update:

  gcloud run services update SERVICE --gpu 0
  

Substitua SERVICE pelo nome do serviço 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 services describe SERVICE --format export > service.yaml
  2. Exclua as linhas nvidia.com/gpu: e nodeSelector: run.googleapis.com/accelerator: GPU_TYPE.

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

    gcloud run services replace service.yaml

Bibliotecas de driver

Por padrão, todas as bibliotecas de drivers da GPU NVIDIA L4 e NVIDIA RTX PRO 6000 Blackwell 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 linker pesquisa e resolve caminhos na ordem em que você os lista na variável de ambiente LD_LIBRARY_PATH. Todos 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 12.2, 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 o número máximo de instâncias

O número de instâncias com GPUs é limitado de duas maneiras:

A seguir

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