Sobre o particionamento dinâmico do GKE

Neste documento, descrevemos o segmento dinâmico no Google Kubernetes Engine (GKE). O particionamento dinâmico permite configurar sub-blocos de TPU provisionada em diferentes topologias. Esse recurso reduz a necessidade de recriar pools de nós, aumenta a tolerância a falhas permitindo a recuperação automática quando ocorre uma falha e otimiza a utilização de recursos.

O corte dinâmico é destinado a engenheiros de machine learning (ML) e de plataforma que querem otimizar a utilização da TPU, reduzir o tempo de provisionamento e melhorar a tolerância a falhas para cargas de trabalho de treinamento e inferência em grande escala.

Antes de ler este documento, você precisa conhecer os seguintes tópicos:

O que é segmentação dinâmica?

O particionamento dinâmico oferece flexibilidade no gerenciamento da capacidade do Cloud TPU, permitindo desacoplar o provisionamento da TPU. O processo de segmentação dinâmica envolve o seguinte:

  1. Provisione recursos como unidades menores: você provisiona recursos como unidades chamadas de sub-blocos. Um sub-bloco é a unidade de construção lógica fundamental da capacidade do Ironwood (TPU7x). Para o Ironwood (TPU7x), um subbloco representa um grupo de 16 nós de VMs de TPU com uma topologia 4x4x4 de chips de TPU interconectados. No contexto do modo de capacidade total da TPU e do particionamento dinâmico, um pool de nós é mapeado diretamente para um subbloco.
  2. Unir sub-blocos: a segmentação dinâmica une esses sub-blocos em segmentos maiores.

Benefícios do segmentação dinâmica

A segmentação dinâmica ajuda você a:

  • Reduzir o tempo de provisionamento: o provisionamento individual de sub-blocos leva a um provisionamento geral mais rápido porque minimiza o impacto de uma única falha.
  • Reduzir o tempo de recuperação: se ocorrer uma falha no chip da TPU, a menor unidade de falha será um subbloco. O corte dinâmico isola sub-blocos com falhas para que as cargas de trabalho possam ser reagendadas em sub-blocos íntegros mais rapidamente do que o reprovisionamento de uma grande fatia inteira.
  • Redefinir a capacidade: se você tiver requisitos de carga de trabalho diversos, não será necessário excluir e recriar pools de nós para mudanças de topologia. Em vez disso, é possível reconfigurar dinamicamente os pools de nós provisionados para corresponder aos formatos especificados.

Principais elementos da segmentação dinâmica

O corte dinâmico apresenta os seguintes conceitos principais:

  • Provisionamento incremental de pools de nós: o segmentação dinâmica usa o provisionamento incremental, que é um modelo de provisionamento tolerante a falhas de pools de nós. Esse modelo converte toda a capacidade de TPU em pools de nós de um grupo de 16 nós de VMs de TPU.
  • Controlador de fração: um controlador de recurso personalizado do Kubernetes em execução no plano de controle do GKE que gerencia o particionamento dinâmico. O controlador de frações gerencia o ciclo de vida de um recurso personalizado de fração, que representa uma fração dinâmica. O controlador de fração processa a criação, o monitoramento contínuo e a exclusão da Slice. Quando você usa um programador, ele direciona a criação e exclusão do recurso personalizado Slice.
  • Recurso personalizado de fração: une dinamicamente sub-blocos com base na topologia de TPU solicitada. Esse processo depende da reconfiguração dinâmica da rede OCS para conectar os pools de nós da TPU, o que ajuda a garantir um desempenho otimizado. Para inspecionar o progresso ou a integridade da formação de intervalos dinâmicos, verifique os campos de status do recurso personalizado de Slice.

Usar programadores para segmentação dinâmica

Para usar o segmentação dinâmica, use uma das seguintes opções:

A seguir