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:
- Como escolher sua cota de GPU, o número máximo de GPUs que podem ser executadas em seu projeto
- Como escolher entre os modos Autopilot e Standard
- Gerenciar a pilha de GPU com o GKE ou o operador de GPU NVIDIA no GKE
- Como escolher recursos para reduzir a quantidade de recursos de GPU subutilizados
- Como acessar bibliotecas NVIDIA CUDA-X para aplicativos CUDA
- Como monitorar métricas de nós da GPU
- Como lidar com interrupções devido à manutenção do nó
- Usar o GKE Sandbox para proteger cargas de trabalho de GPU
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.
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 |
|
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:
|
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.
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:
- Implantar cargas de trabalho da GPU no Autopilot
- Executar GPUs em pools de nós padrão
- Implante clusters com GPUs NVIDIA B200 ou NVIDIA H200 de 141 GB
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 |
|
|
Verificação de integridade dos nós de GPU |
|
|
Métricas e observabilidade |
|
|
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.
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:
Acesse a página Cargas de trabalho no console Google Cloud .
Acesse "Cargas de trabalho"- 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.