Esta página descreve a configuração da GPU para os workerpools do Cloud Run. A Google fornece GPUs NVIDIA L4 com 24 GB de memória da GPU (VRAM), que é separada da memória da instância.
A GPU no Cloud Run é totalmente gerida, sem necessidade de controladores ou bibliotecas adicionais. A funcionalidade de GPU oferece disponibilidade a pedido sem necessidade de reservas, semelhante à forma como a CPU a pedido e a memória a pedido funcionam no Cloud Run.
As instâncias do Cloud Run com uma GPU L4 anexada e controladores pré-instalados são iniciadas em aproximadamente 5 segundos, momento em que os processos em execução no seu contentor podem começar a usar a GPU.
Pode configurar uma GPU por instância do Cloud Run. Se usar contentores auxiliares, tenha em atenção que a GPU só pode ser anexada a um contentor.
Regiões suportadas
asia-southeast1
(Singapura)asia-south1
(Mumbai) . Esta região está disponível apenas por convite. Contacte a equipa da sua Conta Google se tiver interesse nesta região.europe-west1
(Bélgica)Baixo CO2
europe-west4
(Países Baixos)Baixo CO2
us-central1
(Iowa)Baixo CO2
us-east4
(Virgínia do Norte)
Tipos de GPUs suportados
Pode usar uma GPU L4 por instância do Cloud Run. Uma GPU L4 tem os seguintes controladores pré-instalados:
- A versão atual do controlador NVIDIA: 535.216.03 (CUDA 12.2)
Impacto nos preços
Consulte os preços do Cloud Run para ver detalhes dos preços das GPUs. Tenha em atenção os seguintes requisitos e considerações:
- Existe uma diferença no custo entre a redundância zonal da GPU e a redundância não zonal. Consulte os preços do Cloud Run para ver detalhes dos preços das GPUs.
- Não é possível ajustar automaticamente a escala dos grupos de trabalhadores de GPU. A GPU é cobrada mesmo que não esteja a executar nenhum processo e enquanto a instância de GPU do conjunto de trabalhadores estiver em execução.
- O preço da CPU e da memória para pools de trabalhadores é diferente do preço dos serviços e das tarefas. No entanto, o preço do SKU da GPU é o mesmo que o dos serviços e tarefas.
- Tem de usar um mínimo de 4 CPUs e 16 GiB de memória.
- A GPU é faturada durante toda a duração do ciclo de vida da instância.
Opções de redundância zonal da GPU
Por predefinição, o Cloud Run implementa o seu conjunto de trabalhadores em várias zonas numa região. Esta arquitetura oferece resiliência inerente: se uma zona sofrer uma interrupção, o Cloud Run encaminha automaticamente o tráfego da zona afetada para zonas em bom estado de funcionamento na mesma região.
Quando trabalhar com recursos de GPU, tenha em atenção que os recursos de GPU têm restrições de capacidade específicas. Durante uma indisponibilidade zonal, o mecanismo de comutação por falha padrão para cargas de trabalho de GPU baseia-se na disponibilidade de capacidade de GPU não utilizada suficiente nas zonas restantes em bom estado. Devido à natureza restrita das GPUs, esta capacidade pode nem sempre estar disponível.
Para aumentar a disponibilidade dos seus conjuntos de trabalhadores acelerados por GPU durante interrupções zonais, pode configurar a redundância zonal especificamente para GPUs:
Redundância zonal ativada (predefinição): o Cloud Run reserva capacidade de GPU para o seu conjunto de trabalhadores em várias zonas. Isto aumenta significativamente a probabilidade de o seu conjunto de trabalhadores conseguir processar com êxito o tráfego reencaminhado de uma zona afetada, oferecendo uma maior fiabilidade durante falhas zonais com um custo adicional por segundo de GPU.
Redundância zonal desativada: o Cloud Run tenta a comutação por falha para cargas de trabalho de GPU com base no melhor esforço. O tráfego é encaminhado para outras zonas apenas se existir capacidade de GPU suficiente nesse momento. Esta opção não garante capacidade reservada para cenários de comutação por falha, mas resulta num custo mais baixo por segundo de GPU.
SLA
O ANS para a GPU do Cloud Run depende se o grupo de trabalhadores usa a opção de redundância zonal ou não zonal. Consulte a página do SLA para ver detalhes.
Peça um aumento da quota
Os projetos que usam nvidia-l4
GPUs no Cloud Run numa região pela primeira vez recebem automaticamente uma quota de 3 GPUs (redundância zonal desativada) quando a primeira implementação é criada.
Se precisar de GPUs adicionais do Cloud Run, tem de pedir um aumento da quota
para o seu conjunto de trabalhadores do Cloud Run. Use os links fornecidos nos seguintes botões para pedir a quota de que precisa.
Quota necessária | Link de quota |
---|---|
GPU com redundância zonal desativada (preço mais baixo) | Peça quota de GPU sem redundância zonal |
GPU com redundância zonal ativada (preço mais elevado) | Peça quota de GPU com redundância zonal |
Para mais informações sobre como pedir aumentos da quota, consulte o artigo Como aumentar a quota.
Antes de começar
A lista seguinte descreve os requisitos e as limitações quando usa GPUs no Cloud Run:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Peça a quota necessária.
- Consulte as práticas recomendadas para GPUs: conjuntos de trabalhadores do Cloud Run com GPUs para ver recomendações sobre a criação da imagem do contentor e o carregamento de modelos grandes.
- Certifique-se de que o conjunto de trabalhadores do Cloud Run tem as seguintes configurações:
- Configure as definições de faturação para a faturação baseada em instâncias. Tenha em atenção que os conjuntos de trabalhadores definidos para faturação baseada em instâncias ainda podem ser reduzidos a zero.
- Configure um mínimo de 4 CPUs para o seu conjunto de trabalhadores, sendo recomendadas 8 CPUs.
- Configure um mínimo de 16 GiB de memória, sendo recomendados 32 GiB.
- Determine e defina uma simultaneidade máxima ideal para a utilização da GPU.
-
Programador do Cloud Run (
roles/run.developer
) – o conjunto de trabalhadores do Cloud Run -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) – a identidade do serviço Na Google Cloud consola, aceda ao Cloud Run:
Selecione Grupos de trabalhadores no menu e clique em Implementar contentor para configurar um novo grupo de trabalhadores. Se estiver a configurar um conjunto de trabalhadores existente, clique no conjunto de trabalhadores e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo conjunto de trabalhadores, preencha a página de definições inicial do conjunto de trabalhadores e, de seguida, clique em Recipientes, volumes, rede, segurança para expandir a página de configuração do conjunto de trabalhadores.
Clique no separador Contentor.
- Configure a CPU, a memória, a simultaneidade, o ambiente de execução e a sondagem de arranque seguindo as recomendações em Antes de começar
- Selecione a caixa de verificação da GPU e, de seguida, selecione o tipo de GPU no menu Tipo de GPU e o número de GPUs no menu Número de GPUs.
- Por predefinição, a redundância zonal está ativada. Para alterar a definição atual, selecione a caixa de verificação da GPU para mostrar as opções de redundância da GPU.
- Selecione Sem redundância zonal para desativar a redundância zonal
- Selecione Redundância zonal para ativar a redundância zonal.
Clique em Criar ou Implementar.
- WORKER_POOL: o nome do seu conjunto de trabalhadores do Cloud Run.
- IMAGE_URL: uma referência à imagem do contentor que contém o conjunto de trabalhadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - WORKER_POOL: o nome do seu conjunto de trabalhadores do Cloud Run.
- IMAGE_URL: uma referência à imagem do contentor que contém o conjunto de trabalhadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - CPU: o número de CPUs. Tem de especificar, pelo menos,
4
CPUs. - MEMORY: a quantidade de memória. Tem de especificar, pelo menos,
16Gi
(16 GiB). - GPU_NUMBER: o valor
1
(um). Se não for especificado, mas estiver presente um GPU_TYPE, o valor predefinido é1
. - GPU_TYPE: o tipo de GPU. Se não estiver especificado, mas estiver presente um GPU_NUMBER, a predefinição é
nvidia-l4
(nvidiaL
4 L minúsculos, não o valor numérico catorze). - GPU_ZONAL_REDUNDANCY:
no-gpu-zonal-redundancy
para desativar a redundância zonal ougpu-zonal-redundancy
para a ativar. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Atualize o atributo
nvidia.com/gpu:
enodeSelector:
:
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
Substitua o seguinte:
- WORKER_POOL: o nome do seu conjunto de trabalhadores do Cloud Run.
- IMAGE_URL: uma referência à imagem do contentor que contém o conjunto de trabalhadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - CPU: o número de CPUs. Tem de especificar, pelo menos,
4
CPUs. - MEMORY: a quantidade de memória. Tem de especificar, pelo menos,
16Gi
(16 GiB). - GPU_TYPE: o valor
nvidia-l4
(nvidia-L
4 L minúsculo, não o valor numérico catorze). - GPU_ZONAL_REDUNDANCY:
false
para ativar a redundância zonal da GPU outrue
para a desativar.
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
- WORKER_POOL: o nome do seu conjunto de trabalhadores do Cloud Run.
- GPU_ZONAL_REDUNDANCY:
false
para ativar a redundância zonal da GPU outrue
para a desativar. - IMAGE_URL: uma referência à imagem do contentor que contém o conjunto de trabalhadores, como
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
. - CPU: o número de CPUs. Tem de especificar, pelo menos,
4
CPUs. - MEMORY: a quantidade de memória. Tem de especificar, pelo menos,
16Gi
(16 GiB). - GPU_TYPE: o valor
nvidia-l4
(nvidia-L
4 L minúsculo, não o valor numérico catorze). Na Google Cloud consola, aceda à página de conjuntos de trabalhadores do Cloud Run:
Clique no conjunto de trabalhadores que lhe interessa para abrir a página Detalhes dos conjuntos de trabalhadores.
Clique em Editar e implementar nova revisão.
Localize a definição de GPU nos detalhes da configuração.
Use o seguinte comando:
gcloud beta run worker-pools describe WORKER_POOL
Localize a definição de GPU na configuração devolvida.
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Grupos de trabalhadores no menu e clique em Implementar contentor para configurar um novo grupo de trabalhadores. Se estiver a configurar um conjunto de trabalhadores existente, clique no conjunto de trabalhadores e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo conjunto de trabalhadores, preencha a página de definições inicial do conjunto de trabalhadores e, de seguida, clique em Recipientes, volumes, rede, segurança para expandir a página de configuração do conjunto de trabalhadores.
Clique no separador Contentor.
- Desmarque a caixa de verificação GPU.
- Clique em Criar ou Implementar.
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Elimine as linhas
nvidia.com/gpu:
enodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Funções necessárias
Para receber as autorizações de que precisa para configurar e implementar pools de trabalhadores do Cloud Run, peça ao seu administrador que lhe conceda as seguintes funções de IAM nos workerpools:
Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu conjunto de trabalhadores do Cloud Run interage com Google Cloud APIs, como as bibliotecas de clientes da nuvem, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.
Configure um conjunto de trabalhadores do Cloud Run com GPU
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Pode usar a Google Cloud consola, a CLI do Google Cloud ou o YAML para configurar a GPU.
Consola
gcloud
Para criar um worker pool com GPU, use o comando
gcloud beta run worker-pools deploy
:
gcloud beta run worker-pools deploy WORKER_POOL \ --image IMAGE_URL \ --gpu 1
Substitua o seguinte:
Para atualizar a configuração da GPU para um conjunto de trabalhadores, use o 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
Substitua o seguinte:
YAML
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
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"
}
}
}
Substitua o seguinte:
Veja as definições da GPU
Para ver as definições atuais da GPU para o seu conjunto de trabalhadores do Cloud Run:
Consola
gcloud
Remova a GPU
Pode remover a GPU através da Google Cloud consola, da CLI Google Cloud ou do YAML.
Consola
gcloud
Para remover a GPU, defina o número de GPUs como 0
:
gcloud beta run worker-pools update WORKER_POOL --gpu 0
Substitua WORKER_POOL pelo nome do conjunto de trabalhadores do Cloud Run.
YAML
Bibliotecas
Por predefinição, todas as bibliotecas de controladores NVIDIA L4 estão montadas em /usr/local/nvidia/lib64
. O Cloud Run anexa automaticamente este caminho à variável de ambiente LD_LIBRARY_PATH
(ou seja, ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64
) do contentor com a GPU. Isto permite que o linker dinâmico encontre as bibliotecas de controladores da NVIDIA. O linker pesquisa e resolve caminhos
pela ordem em que os lista na variável de ambiente LD_LIBRARY_PATH
. Todos os valores que especificar nesta variável têm precedência sobre o caminho predefinido das bibliotecas do controlador do Cloud Run /usr/local/nvidia/lib64
.
Se quiser usar uma versão do CUDA superior a 12.2,
a forma mais fácil é depender de uma imagem base da 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 ao LD_LIBRARY_PATH
. Consulte a matriz de compatibilidade da NVIDIA
para determinar que versões do CUDA são compatíveis com a versão do controlador NVIDIA
fornecida (535.216.03).