Acerca das GPUs no Google Kubernetes Engine (GKE)

Esta página descreve as GPUs no Google Kubernetes Engine (GKE) para ajudar a selecionar a configuração de GPU ideal para as suas cargas de trabalho. Se quiser implementar cargas de trabalho de GPU que usam o Slurm, consulte o artigo Crie um cluster Slurm otimizado para IA.

Pode usar GPUs para acelerar tarefas com utilização intensiva de recursos, como a aprendizagem automática e o processamento de dados. As informações nesta página podem ajudar a fazer o seguinte:

  • Garantir a disponibilidade da GPU quando necessário.
  • Decida se quer usar GPUs em clusters do modo GKE Autopilot ou do modo GKE Standard.
  • Escolha funcionalidades relacionadas com a GPU para usar de forma eficiente a capacidade da GPU.
  • Monitorize as métricas dos nós de GPU.
  • Melhore a fiabilidade da carga de trabalho da GPU processando as interrupções de forma mais eficaz.

Esta página destina-se a administradores e operadores de plataformas e engenheiros de aprendizagem automática (AA) que querem garantir que a infraestrutura de aceleradores está otimizada para as suas cargas de trabalho.

Antes de ler esta página, certifique-se de que conhece o seguinte:

Seleção de GPU no GKE

No GKE, a forma como pede hardware de GPU depende de estar a usar o modo Autopilot ou Standard. No Autopilot, pede hardware de GPU especificando recursos de GPU nas suas cargas de trabalho. No modo padrão do GKE, pode associar hardware de GPU a nós nos seus clusters e, em seguida, atribuir recursos de GPU a cargas de trabalho contentorizadas em execução nesses nós. Para instruções detalhadas sobre como anexar e usar GPUs nas suas cargas de trabalho, consulte os artigos Implemente cargas de trabalho de GPU no Autopilot ou Execute GPUs em pools de nós padrão.

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

Esta página ajuda a considerar as opções para pedir GPUs no GKE, incluindo o seguinte:

Modelos de GPU disponíveis

O hardware de GPU disponível para utilização 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 seu cluster. Para mais informações sobre a disponibilidade específica, consulte o artigo Regiões e zonas de GPUs.

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

Quota de GPU do plano

A sua quota de GPUs é o número máximo de GPUs que podem ser executadas no seu Google Cloud projeto. Para usar GPUs nos seus clusters do GKE, o seu projeto tem de ter uma quota de GPUs suficiente. Consulte a página Quotas para garantir que tem GPUs suficientes disponíveis no seu projeto.

A sua quota de GPUs deve ser, pelo menos, igual ao número total de GPUs que pretende executar no cluster. Se ativar o dimensionamento automático do cluster, deve pedir uma quota de GPU, pelo menos, equivalente ao número máximo de nós do cluster multiplicado pelo número de GPUs por nó.

Por exemplo, se espera usar três nós com duas GPUs cada, então seis é a quota de GPUs necessária para o seu projeto.

Para pedir uma quota de GPU adicional, siga as instruções para pedir um ajuste de quota, usando gpus como métrica.

Escolha o suporte de GPU através do Autopilot ou do modo padrão

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

Prática recomendada:

Use clusters do Autopilot para uma experiência do Kubernetes totalmente gerida. No Autopilot, o GKE gere a instalação de controladores, o escalonamento de nós, o isolamento de pods e o aprovisionamento de nós.

A tabela seguinte oferece uma vista geral das diferenças entre o Autopilot e o suporte de GPU padrão:

Descrição Piloto automático Standard
Pedir hardware de GPU Especifique recursos de GPU nas suas cargas de trabalho. Anexe hardware de GPU a nós nos seus clusters e, em seguida, atribua recursos de GPU a cargas de trabalho em contentores em execução nesses nós.
Disponibilidade de 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 GPUs suportados pelo Compute Engine
Selecionar uma GPU Pede uma quantidade e um tipo de GPU na especificação da carga de trabalho. Por predefinição, o Autopilot instala o controlador predefinido para essa versão do GKE e gere os seus nós. Para selecionar uma versão específica do controlador no Autopilot, consulte a secção NVIDIA drivers selection for Autopilot GPU Pods. Executa os passos descritos no artigo Executar GPUs em pools de nós padrão:
  1. Crie um conjunto de nós com o tipo de GPU específico e o tipo de máquina do Compute Engine correspondente e escolha um controlador para instalar.
  2. Instale manualmente os controladores da GPU nos nós se não tiver usado a instalação automática.
  3. Peça quantidades de GPU na especificação do pod.
Melhore a utilização da GPU
Segurança
Preços Preços dos agrupamentos de GPUs do Autopilot Preços das GPUs do Compute Engine

Para escolher o modo de funcionamento do GKE mais adequado para as suas cargas de trabalho, consulte o artigo Escolha um modo de funcionamento do GKE.

Consuma GPUs

O GKE oferece opções de consumo de GPU que variam consoante os requisitos da sua carga de trabalho. Use a página Acerca das opções de consumo de aceleradores para cargas de trabalho de IA/AM no GKE para escolher a melhor opção para o seu exemplo de utilização.

Faça a gestão da pilha de GPUs através do GKE ou do operador de GPU da NVIDIA no GKE

Por predefinição, o GKE gere todo o ciclo de vida dos nós de GPU, incluindo a instalação automática de controladores de GPU, a monitorização de cargas de trabalho de GPU no GKE com o NVIDIA Data Center GPU Manager (DCGM) e as estratégias de partilha de GPU.

Prática recomendada:

Use o GKE para gerir os seus nós de GPU, uma vez que o GKE gere totalmente o ciclo de vida dos nós de GPU.

Comece a usar o GKE para a gestão de nós de GPU escolhendo uma das seguintes opções:

O operador de GPU da NVIDIA pode ser usado como alternativa ao suporte de GPU totalmente gerido no GKE em imagens de nós do SO otimizado para contentores (COS) e do Ubuntu. Selecione esta opção se procurar uma experiência consistente em vários fornecedores de serviços na nuvem, já estiver a usar o operador de GPU da NVIDIA ou se estiver a usar software que dependa do operador de GPU da NVIDIA. Para saber mais, consulte o artigo Faça a gestão da pilha de GPUs com o operador de GPU da NVIDIA.

Para selecionar a melhor opção para o seu exemplo de utilização, consulte a seguinte tabela que compara os dois métodos de gestão de nós de GPU no GKE.

Descrição Use o GKE para gerir nós de GPU Use o operador de GPU da NVIDIA no GKE
Gestão do ciclo de vida dos nós de GPU (instalação, atualização) Totalmente gerido pelo GKE. Gerido pelo utilizador.
Instalação de controladores Instalação automática e manual de controladores de GPU. Instalação manual de controladores da GPU.
Seletores de nós cloud.google.com/gke-gpu=true nvidia.com/gpu=true
Estratégias de partilha de GPU
  • Serviço de vários processos: não suportado.
Verificação de funcionamento dos nós de GPU
  • Aciona a reparação de nós em 15 minutos se a quantidade alocável de GPUs não for igual à capacidade e a reparação automática estiver ativada.
  • Monitorize todos os códigos de erro por predefinição.
  • Aciona a reparação de nós em 15 minutos se a quantidade alocável de GPUs não for igual à capacidade e a reparação automática estiver ativada.
Métricas e observabilidade
  • Com as métricas do sistema ativadas, as seguintes métricas da GPU estão disponíveis no Cloud Monitoring: ciclo de trabalho, utilização de memória e capacidade de memória.
  • DCGM autogerido 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 com a GPU não são recolhidas, incluindo o ciclo de trabalho, a utilização de memória e a capacidade de memória.

Otimize a utilização de recursos com funcionalidades de GPU no GKE

Por predefinição, o Kubernetes só suporta a atribuição de GPUs como unidades completas a contentores, mas o GKE oferece funcionalidades adicionais que pode usar para otimizar a utilização de recursos das suas cargas de trabalho de GPU.

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

Funcionalidades da GPU
GPUs multi-instância

Disponível em: Autopilot e Standard

Dividir uma única GPU em até sete instâncias separadas por hardware que podem ser atribuídas como GPUs individuais a contentores num nó. Cada contentor atribuído recebe os recursos disponíveis para essa instância.

GPUs de partilha de tempo

Disponível em: Autopilot e Standard

Apresentar uma única GPU como várias unidades a vários contentores num nó. O controlador da GPU muda de contexto e atribui os recursos da GPU completos a cada contentor atribuído, conforme necessário ao longo do tempo.

NVIDIA MPS

Disponível no: Standard

Partilhe uma única GPU física da NVIDIA por vários contentores. O MPS da NVIDIA é uma implementação alternativa e compatível com binários da API CUDA concebida para permitir de forma transparente que as aplicações CUDA de vários processos cooperativos sejam executadas em simultâneo num único dispositivo de GPU.

Aceda às bibliotecas NVIDIA CUDA-X para aplicações CUDA

CUDA é a plataforma de computação paralela e o modelo de programação da NVIDIA para GPUs. Para usar aplicações CUDA, a imagem que usa tem de ter as bibliotecas. Para adicionar as bibliotecas NVIDIA CUDA-X, pode criar e usar a sua própria imagem incluindo os seguintes valores na variável de ambiente LD_LIBRARY_PATH na especificação do contentor:

  • /usr/local/nvidia/lib64: a localização dos controladores de dispositivos 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 usou. Algumas versões também contêm utilitários de depuração em /usr/local/nvidia/bin. Para obter detalhes, consulte a imagem NVIDIA CUDA no DockerHub.

    Para verificar a versão mínima do controlador da GPU necessária para a sua versão do CUDA, consulte CUDA Toolkit and Compatible Driver Versions (Kit de ferramentas CUDA e versões de controladores compatíveis).

Certifique-se de que a versão da correção do GKE executada nos seus nós inclui uma versão do controlador da GPU compatível com a versão do CUDA escolhida. Para mais informações sobre o mapeamento da versão do controlador da GPU para a versão do GKE, consulte o artigo Mapeie a versão do GKE e a versão da imagem do nó do SO otimizado para contentores para a versão do controlador da GPU.

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

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

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

  • Ciclo de trabalho (container/accelerator/duty_cycle): percentagem de tempo durante o período de amostragem anterior (10 segundos) durante o qual o acelerador estava a processar ativamente. Entre 1 e 100.
  • Utilização de memória (container/accelerator/memory_used): Quantidade de memória do acelerador atribuída em bytes.
  • Capacidade da memória (container/accelerator/memory_total): total de memória do acelerador em bytes.

Estas métricas aplicam-se ao nível do contentor (container/accelerator) e não são recolhidas para contentores agendados numa GPU que usa a partilha de tempo da GPU ou o NVIDIA MPS.

Pode usar painéis de controlo predefinidos para monitorizar os seus clusters com nós de GPU. Para mais informações, consulte o artigo Veja as métricas de observabilidade. Para ver informações gerais sobre a monitorização dos seus clusters e respetivos recursos, consulte a Observabilidade para o GKE.

Veja as métricas de utilização das cargas de trabalho

Pode ver as métricas de utilização da GPU da carga de trabalho no painel de controlo Cargas de trabalho na consola Google Cloud .

Para ver a utilização da GPU da carga de trabalho, siga estes passos:

  1. Aceda à página Workloads na Google Cloud consola.

    Aceda a Cargas de trabalho
  2. Selecione uma carga de trabalho.

O painel de controlo Workloads apresenta gráficos para a utilização e a capacidade da memória da GPU, bem como o ciclo de atividade da GPU.

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

Pode recolher e visualizar métricas do NVIDIA DCGM através do Google Cloud Managed Service for Prometheus. Para os clusters do Autopilot, o GKE instala os controladores. Para clusters padrão, tem de instalar os controladores da NVIDIA.

Para instruções sobre como implementar o pacote DCGM gerido pelo GKE, consulte o artigo Recolha e veja métricas do NVIDIA Data Center GPU Manager (DCGM).

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

Os nós do GKE que alojam as GPUs estão sujeitos a eventos de manutenção ou outras interrupções que podem causar o encerramento dos nós. Em clusters do GKE com o plano de controlo a executar a versão 1.29.1-gke.1425000 e posterior, pode reduzir a interrupção das cargas de trabalho configurando o GKE para terminar as cargas de trabalho de forma elegante.

Para compreender, configurar e monitorizar eventos de interrupção que possam ocorrer em nós do GKE que executam cargas de trabalho de IA/ML, consulte o artigo Gerir a interrupção de nós do GKE para GPUs e TPUs.

O que se segue?