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:
- Escolher a sua quota de GPUs, o número máximo de GPUs que podem ser executadas no seu projeto
- Decidir entre os modos Autopilot e Padrão
- Faça a gestão da pilha de GPU através do GKE ou do operador de GPU da NVIDIA no GKE
- Escolher funcionalidades para reduzir a quantidade de recursos de GPU pouco usados
- Aceder às bibliotecas NVIDIA CUDA-X para aplicações CUDA
- Monitorização das métricas dos nós de GPU
- Como lidar com a interrupção devido à manutenção de nós
- Use o GKE Sandbox para proteger cargas de trabalho de GPU
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.
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 |
|
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:
|
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.
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:
- Implemente cargas de trabalho de GPU no Autopilot
- Execute GPUs em pools de nós padrão
- Implemente clusters com GPUs NVIDIA B200 ou NVIDIA H200 de 141 GB
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 |
|
|
Verificação de funcionamento dos nós de GPU |
|
|
Métricas e observabilidade |
|
|
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).
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:
Aceda à página Workloads na Google Cloud consola.
Aceda a Cargas de trabalho- 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.