Sobre GPUs no Google Kubernetes Engine (GKE)

Nesta página, descrevemos as GPUs no Google Kubernetes Engine (GKE) para ajudar você a selecionar a configuração ideal para suas cargas de trabalho. Se você quiser implantar cargas de trabalho de GPU que usam o Slurm, consulte Criar um cluster Slurm otimizado com IA em vez disso.

É possível usar GPUs para acelerar tarefas com uso intensivo de recursos, como machine learning e processamento de dados. As informações nesta página podem ajudar você a fazer o seguinte:

  • Garantir a disponibilidade da GPU quando necessário.
  • Decida se vai usar GPUs no modo Autopilot do GKE ou em clusters do modo GKE Standard.
  • Escolha recursos relacionados à GPU para usar a capacidade dela de maneira eficiente.
  • Monitore as métricas do nó da GPU.
  • Melhore a confiabilidade da carga de trabalho da GPU lidando com interrupções de maneira mais eficaz.

Esta página é destinada a administradores e operadores de plataforma e engenheiros de machine learning (ML) que querem garantir que a infraestrutura de aceleradores esteja otimizada para suas cargas de trabalho.

Antes de ler esta página, confira se você conhece os seguintes conceitos:

Seleção de GPU no GKE

No GKE, a maneira de solicitar o hardware da GPU depende se você está usando o modo Autopilot ou Standard. No Autopilot, você solicita hardware da GPU ao especificar recursos da GPU nas cargas de trabalho. No modo GKE Standard, é possível anexar hardware de GPU a nós nos clusters e alocar recursos de GPU para cargas de trabalho conteinerizadas em execução nesses nós. Para instruções detalhadas sobre como anexar e usar GPUs nas cargas de trabalho, consulte Implantar cargas de trabalho da GPU no Autopilot ou Executar GPUs em pools de nós padrão.

O GKE oferece alguns recursos específicos da GPU para melhorar a utilização eficiente de recursos de GPU das cargas de trabalho em execução nos nós, incluindo compartilhamento de tempo, GPUs de várias instâncias e GPUs com NVIDIA MPS.

Nesta página, você vai conhecer opções para solicitar GPUs no GKE, incluindo:

Modelos de GPU disponíveis

O hardware de GPU disponível para uso no GKE é um subconjunto dos modelos de GPU disponíveis no Compute Engine. O hardware específico disponível depende da região ou da zona do Compute Engine do cluster. Para mais informações sobre disponibilidade específica, consulte Regiões e zonas de GPU.

Para informações sobre preços de GPUs, consulte os Google Cloud SKUs e a página de preços de GPUs.

Planejar a cota de GPU

A cota de GPU é o número máximo de GPUs que podem ser executadas no projetoGoogle Cloud . Para que você possa usar GPUs nos clusters do GKE, o projeto precisa ter cota de GPU suficiente. Confira se há GPUs disponíveis no projeto na página Cotas.

A cota de GPU precisa ser pelo menos equivalente ao número total de GPUs que você pretende executar no cluster. Se você ativar o dimensionamento automático de cluster, será necessário solicitar uma cota de GPU equivalente pelo menos ao número máximo de nós do cluster multiplicado pelo número de GPUs por nó.

Por exemplo, se você pretende usar três nós com duas GPUs cada, seis são a cota de GPU necessária para o projeto.

Para solicitar mais cota de GPU, siga as instruções para pedir um ajuste de cota, usando gpus como métrica.

Escolher o suporte a GPUs usando o Autopilot ou Standard

As GPUs estão disponíveis nos clusters Autopilot e Standard.

Prática recomendada:

Use clusters do Autopilot para ter uma experiência totalmente gerenciada do Kubernetes. No Autopilot, o GKE gerencia a instalação de drivers, o escalonamento de nós, o isolamento de pods e o provisionamento de nós.

A tabela a seguir fornece uma visão geral das diferenças entre o suporte a GPUs do Autopilot e do Standard:

Descrição Piloto automático Padrão
Como solicitar hardware de GPU Especifique recursos de GPU em suas cargas de trabalho. Anexe hardware de GPU a nós nos clusters e aloque recursos de GPU a cargas de trabalho conteinerizadas em execução nesses nós.
Disponibilidade do hardware da GPU
  • NVIDIA T4
  • NVIDIA L4
  • NVIDIA A100 40GB
  • NVIDIA A100 80GB
  • NVIDIA H100 80GB
  • NVIDIA H200 141GB
  • NVIDIA B200
  • NVIDIA GB200
Todos os tipos de GPU com suporte no Compute Engine
Como selecionar uma GPU Você solicita uma quantidade de GPU e digita a especificação do pod. Por padrão, o Autopilot instala o driver padrão dessa versão do GKE e gerencia seus nós. Para selecionar uma versão específica do driver no Autopilot, consulte Seleção de drivers NVIDIA para pods de GPU do Autopilot Siga as etapas descritas em Executar GPUs em pools de nós padrão:
  1. Crie um pool de nós com o tipo de GPU específico e o tipo de máquina correspondente do Compute Engine e escolha um driver para instalar.
  2. Instalar manualmente drivers de GPU nos nós, se você não usou a instalação automática.
  3. Solicitar quantidades de GPU na especificação do pod.
Melhorar o uso da GPU
Segurança
Preços Preços do pod da GPU do Autopilot Preços das GPUs do Compute Engine

Para escolher o modo de operação do GKE mais adequado para suas cargas de trabalho, consulte Escolher um modo de operação do GKE.

Consumir GPUs

O GKE oferece opções de consumo de GPU que variam de acordo com os requisitos da sua carga de trabalho. Use a página Sobre as opções de consumo de aceleradores para cargas de trabalho de IA/ML no GKE para escolher a melhor opção para seu caso de uso.

Gerenciar a pilha de GPU com o GKE ou o operador de GPU NVIDIA no GKE

Por padrão, o GKE gerencia todo o ciclo de vida dos nós de GPU, incluindo instalação automática de drivers de GPU, monitoramento de cargas de trabalho de GPU no GKE com o NVIDIA Data Center GPU Manager (DCGM) e estratégias de compartilhamento de GPU.

Prática recomendada:

Use o GKE para gerenciar seus nós de GPU, já que o GKE gerencia totalmente o ciclo de vida do nó de GPU.

Para começar a usar o GKE para gerenciamento de nós de GPU, escolha uma das seguintes opções:

O operador de GPU da NVIDIA pode ser usado como uma alternativa ao suporte de GPU totalmente gerenciado no GKE em imagens de nó do Container-Optimized OS (COS) e do Ubuntu. Selecione essa opção se você estiver procurando uma experiência consistente em vários provedores de serviços de nuvem, se já estiver usando o Operador de GPU NVIDIA ou se estiver usando um software que depende do Operador de GPU NVIDIA. Para saber mais, consulte Gerenciar a pilha de GPU com o operador de GPU NVIDIA.

Para selecionar a melhor opção para seu caso de uso, consulte a tabela a seguir, que compara os dois métodos de gerenciamento de nós de GPU no GKE.

Descrição Usar o GKE para gerenciar nós de GPU Usar o operador de GPU NVIDIA no GKE
Gerenciamento do ciclo de vida do nó de GPU (instalação, upgrade) Totalmente gerenciado pelo GKE. Gerenciada pelo usuário.
Instalação de driver Instalação automática e manual de drivers de GPU. Instalação manual de drivers de GPU.
seletores de nodes cloud.google.com/gke-gpu=true nvidia.com/gpu=true
Estratégias de compartilhamento de GPU
  • Serviço de vários processos: não compatível.
Verificação de integridade dos nós de GPU
  • Acione o reparo de nós em 15 minutos se a contagem alocável de GPUs não for igual à capacidade e o reparo automático estiver ativado.
  • Monitorar todos os códigos de erro por padrão.
  • Acione o reparo de nós em 15 minutos se a contagem alocável de GPUs não for igual à capacidade e o reparo automático estiver ativado.
Métricas e observabilidade
  • Com as métricas do sistema ativadas, as seguintes métricas de GPU estão disponíveis no Cloud Monitoring: ciclo de trabalho, uso de memória e capacidade de memória.
  • DCGM autogerenciado fornecido pelo operador de GPU.
  • Mesmo quando as métricas do sistema de GPU do GKE estão ativadas, as métricas do sistema relacionadas à GPU não são coletadas, incluindo ciclo de trabalho, uso de memória e capacidade de memória.

Otimizar o uso de recursos usando as funcionalidades da GPU no GKE

Por padrão, o Kubernetes só permite a atribuição de GPUs como unidades inteiras a contêineres, mas o GKE fornece recursos adicionais que podem ser usados para otimizar o uso de recursos das cargas de trabalho de GPU.

Os seguintes recursos estão disponíveis no GKE para reduzir a quantidade de recursos de GPU subutilizados:

Recursos da GPU
GPUs de várias instâncias

Disponível em:Autopilot e Standard

Divida uma GPU em até sete instâncias separadas por hardware que possam ser atribuídas como GPUs individuais a contêineres em um nó. Cada contêiner atribuído recebe os recursos disponíveis para essa instância.

GPUs de compartilhamento de tempo

Disponível em:Autopilot e Standard

Apresente uma única GPU como várias unidades a vários contêineres em um único nó. O driver da GPU alterna o contexto e aloca todos os recursos da GPU para cada contêiner atribuído conforme necessário ao longo do tempo.

MPS da NVIDIA

Disponível em: Standard

Compartilhe uma única GPU NVIDIA física em vários contêineres. O NVIDIA MPS é uma implementação alternativa e compatível com binários da API CUDA projetada para permitir que aplicativos CUDA cooperativos de vários processos sejam executados simultaneamente em um único dispositivo de GPU.

Acessar as bibliotecas NVIDIA CUDA-X para aplicativos CUDA

O CUDA® é a plataforma de computação paralela e o modelo de programação da NVIDIA para GPUs. Para usar aplicativos CUDA, a imagem usada precisa ter as bibliotecas. Para adicionar as bibliotecas CUDA-X da NVIDIA, crie e use sua própria imagem incluindo os seguintes valores na variável de ambiente LD_LIBRARY_PATH na especificação do contêiner:

  • /usr/local/nvidia/lib64: a localização dos drivers de dispositivo da NVIDIA;
  • /usr/local/cuda-CUDA_VERSION/lib64: a localização das bibliotecas NVIDIA CUDA-X no nó.

    Substitua CUDA_VERSION pela versão da imagem CUDA-X que você usou. Algumas versões também contêm utilitários de depuração em /usr/local/nvidia/bin. Para mais detalhes, veja a imagem NVIDIA CUDA no DockerHub.

    Para verificar a versão mínima do driver da GPU necessária para a versão do CUDA, consulte Kit de ferramentas CUDA e versões compatíveis do driver.

Verifique se a versão do patch do GKE em execução nos nós inclui uma versão do driver da GPU compatível com a versão CUDA escolhida. Para mais informações sobre o mapeamento da versão do driver da GPU para a versão do GKE, consulte Mapear a versão do GKE e a versão da imagem do nó do Container-Optimized OS para a versão do driver da GPU.

Nos clusters do Autopilot, o GKE gerencia a seleção e a instalação da versão do driver.

Monitorar o desempenho da carga de trabalho do nó da GPU

Se o cluster do GKE tiver métricas do sistema ativadas, as seguintes métricas estarão disponíveis no Cloud Monitoring para monitorar o desempenho da carga de trabalho da GPU:

  • Ciclo de trabalho (container/accelerator/duty_cycle): porcentagem de tempo durante o período de amostra anterior (10 segundos) em que o acelerador estava realizando o processamento. Entre 1 e 100.
  • Uso da memória (container/accelerator/memory_used): quantidade de memória do acelerador alocada em bytes.
  • Capacidade de memória (container/accelerator/memory_total): memória total do acelerador em bytes.

Essas métricas se aplicam no nível do contêiner (container/accelerator) e não são coletadas para contêineres programados em uma GPU que usa compartilhamento de tempo de GPU ou NVIDIA MPS.

É possível usar painéis predefinidos para monitorar seus clusters com nós de GPU. Para mais informações, consulte Conferir métricas de observabilidade. Para informações gerais sobre como monitorar os clusters e os recursos deles, consulte Observabilidade no GKE.

Conferir as métricas de uso das cargas de trabalho

Veja as métricas de uso da GPU da carga de trabalho no painel Cargas de trabalho no console do Google Cloud .

Para ver o uso da GPU nas cargas de trabalho, siga estas etapas:

  1. Acesse a página Cargas de trabalho no console Google Cloud .

    Acesse "Cargas de trabalho"
  2. Selecionar uma carga de trabalho

O painel Cargas de trabalho exibe gráficos de uso e capacidade de memória da GPU e de ciclo de trabalho da GPU.

Conferir as métricas do NVIDIA Data Center GPU Manager (DCGM)

É possível coletar e conferir as métricas do NVIDIA DCGM usando o Google Cloud Managed Service para Prometheus. Para clusters do Autopilot, o GKE instala os drivers. Para clusters Standard, é preciso instalar os drivers da NVIDIA.

Para instruções sobre como implantar o pacote do DCGM gerenciado pelo GKE, consulte Coletar e visualizar métricas do NVIDIA Data Center GPU Manager (DCGM)

Lidar com interrupções devido à manutenção do nó

Os nós do GKE que hospedam as GPUs estão sujeitos a eventos de manutenção ou outras interrupções que podem causar o encerramento do nó. Nos clusters do GKE com o plano de controle executando a versão 1.29.1-gke.1425000 e posterior, é possível reduzir as interrupções nas cargas de trabalho configurando o GKE para encerrar as cargas de trabalho normalmente.

Para entender, configurar e monitorar eventos de interrupção que podem ocorrer em nós do GKE que executam cargas de trabalho de IA/ML, consulte Gerenciar a interrupção de nós do GKE para GPUs e TPUs.

A seguir