Sobre o particionamento dinâmico do GKE

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

O fatiamento dinâmico é destinado a engenheiros de IA/ML e administradores 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 conceitos:

O que é fatiamento dinâmico?

O fatiamento dinâmico oferece flexibilidade no gerenciamento da capacidade da Cloud TPU, permitindo que você desacople o provisionamento da TPU. O fatiamento dinâmico envolve o seguinte processo:

  1. Provisionar recursos como unidades menores: você provisiona recursos como unidades chamadas sub-blocos. Um sub-bloco é a unidade de construção lógica fundamental da capacidade do Ironwood (TPU7x). Para o Ironwood (TPU7x), um sub-bloco 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 fatiamento dinâmico, um pool de nós é mapeado diretamente para um sub-bloco.
  2. Unir sub-blocos: o fatiamento dinâmico une esses sub-blocos em fatias maiores.

Benefícios do fatiamento dinâmico

O fatiamento dinâmico 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 qualquer falha.
  • Reduzir o tempo de recuperação: se ocorrer uma falha no chip da TPU, a menor unidade de falha será um sub-bloco. O fatiamento dinâmico isola sub-blocos com falha para que as cargas de trabalho possam ser reagendadas em sub-blocos íntegros mais rapidamente do que o provisionamento de uma fatia grande inteira.
  • Remodelar 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, você pode reconfigurar dinamicamente os pools de nós provisionados para corresponder às formas especificadas.

Principais elementos do fatiamento dinâmico

O fatiamento dinâmico apresenta os seguintes conceitos principais:

  • Provisionamento incremental de pools de nós: o fatiamento dinâmico usa o provisionamento incremental, que é um modelo de provisionamento tolerante a falhas de pools de nós. Esse modelo converte toda a capacidade da TPU em pools de nós de um grupo de 16 nós de VMs de TPU.
  • Controlador de fatias: um controlador de recurso personalizado do Kubernetes em execução no plano de controle do GKE que gerencia o fatiamento dinâmico. O controlador de fatias gerencia o ciclo de vida de um recurso personalizado de fatia, que representa uma fatia dinâmica. O controlador de fatias 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 a exclusão do recurso personalizado Slice.
  • Recurso personalizado de fatia: 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 o desempenho otimizado. Você pode inspecionar o progresso ou a integridade da formação de fatias dinâmicas inspecionando os campos de status do recurso personalizado de Slice.

Programadores para fatiamento dinâmico

Você pode configurar o Kueue e o agendamento com reconhecimento de topologia (TAS, na sigla em inglês) para criar automaticamente um recurso personalizado de Slice. Também é possível usar seu próprio programador para gerenciar recursos personalizados Slice.

A seguir