Sobre o particionamento dinâmico do GKE

Este documento descreve o fatiamento dinâmico no Google Kubernetes Engine (GKE) para Cloud TPU. O fatiamento dinâmico melhora a eficiência e a flexibilidade da TPU, desvinculando o provisionamento da TPU das necessidades de fração da TPU da carga de trabalho. O fatiamento dinâmico ajuda a melhorar a utilização dos recursos da TPU, reduzindo o tempo de inicialização da carga de trabalho em até cinco vezes e o tempo de recuperação em até 4,5 vezes.

O fatiamento 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 estar familiarizado com o seguinte:

O que é fatiamento dinâmico?

O fatiamento dinâmico é um recurso de otimização de TPU do GKE que desvincula o provisionamento de hardware de TPU físico e estático da alocação de fração de TPU no momento da execução, quando as cargas de trabalho são programadas.

Ao usar topologias de TPU estáticas, os pools de nós do GKE são vinculados à topologia específica configurada durante a criação. Devido a essa limitação, se algum nó em um pool estático falhar, todo o pool de nós será afetado. A topologia da carga de trabalho também precisa corresponder exatamente à topologia de TPU do pool de nós para ser programada, o que pode exigir o novo provisionamento frequente da infraestrutura de TPU para diferentes cargas de trabalho.

O fatiamento dinâmico permite que o GKE configure frações de TPU no momento da execução, quando as cargas de trabalho são programadas. Em vez de criar manualmente pools de nós com a topologia de TPU exata necessária para cada nova carga de trabalho, você provisiona toda a capacidade de TPU em pools de nós granulares de tamanho fixo. Para o Ironwood (TPU7x), cada pool de nós consiste em uma topologia 4x4x4, também conhecida como sub-bloco. Um sub-bloco representa um grupo de 16 nós de VMs de TPU sem uma malha de topologia de interconexão entre chips (ICI) ativa. No momento da execução, quando as cargas de trabalho são programadas, o fatiamento dinâmico do GKE reconfigura a interconexão da rede de TPU para unir vários pools de nós na grande fração de TPU necessária ou subdividir pools de nós para formar frações de TPU menores. Essa reconfiguração cria a topologia multidimensional precisa solicitada por uma carga de trabalho em segundos.

Benefícios do fatiamento dinâmico

A implementação de uma arquitetura de TPU dinâmica no GKE oferece as seguintes vantagens:

  • Recuperação mais rápida da carga de trabalho: se ocorrer uma falha de hardware físico, o GKE isolará o problema em uma única partição. O controlador de fração do GKE remodela automaticamente a fração ativa e reconfigura a rede para substituir a partição com falha por uma reserva íntegra. Esse processo melhora a resiliência ou o tempo médio de recuperação (MTTR, na sigla em inglês) em até 4,5 vezes em comparação com a recriação de um pool de nós inteiro.
  • Inicialização acelerada do job: as frações de carga de trabalho podem ser formadas dinamicamente, o que oferece uma melhoria de até cinco vezes na latência de inicialização do job em comparação com a criação de pools de nós estáticos.
  • Isolamento de falhas: as falhas de hardware são isoladas na partição específica em que a falha ocorre. Esse isolamento ajuda a proteger outros jobs simultâneos no cluster contra falhas em cascata.
  • Utilização otimizada de recursos: o fatiamento dinâmico ajuda a eliminar a capacidade ociosa ou subutilizada. Como as frações são configuradas para corresponder às demandas de carga de trabalho, o fatiamento dinâmico ajuda a maximizar a utilização da frota e minimizar o hardware inativo.
  • Orquestração declarativa: o fatiamento dinâmico usa recursos e anotações personalizados nativos do Kubernetes, como JobSet e Kueue. Essa abordagem gerencia automaticamente a orquestração de hardware e rede de baixo nível.

Configurações de fatiamento dinâmico

O fatiamento dinâmico oferece as seguintes configurações:

  • Superfatiamento dinâmico: combina vários pools de nós de TPU pré-provisionados e fisicamente separados para formar uma única fração virtual no momento da programação da carga de trabalho. Por exemplo, é possível combinar dois pools de nós 4x4x4 para formar uma topologia 4x4x8. Esse recurso permite criar frações iguais ou maiores que uma topologia 4x4x4. Essa configuração requer a versão 1.35.2-gke.1842000 ou mais recente. É possível usar o superfatiamento dinâmico para treinar grandes modelos de fundação que excedam a capacidade de um único bloco de hardware físico.

    O controlador de fração orquestra reconfigurações físicas na estrutura de rede do Optical Circuit Switch (OCS). Ao reconfigurar dinamicamente o OCS, o GKE estende a rede de interconexão entre chips (ICI) em racks de hardware independentes. Do ponto de vista das cargas de trabalho, os sub-blocos combinados operam como uma única malha toroidal. Em uma malha toroidal, as conexões são envolvidas. Os chips na borda direita se conectam diretamente aos chips na borda esquerda, e a parte de cima se conecta à parte de baixo. Se você visualizar essa disposição, ela formará a forma de um toro (uma forma de anel).

  • Subfatiamento dinâmico: particiona um único pool de nós de TPU pré-provisionado em várias unidades menores e independentes no nível da carga de trabalho. O subfatiamento dinâmico permite criar topologias menores em um único sub-bloco, especificamente 2x2x1, 2x2x2, 2x2x4 e 2x4x4. Por exemplo, é possível particionar um sub-bloco 4x4x4 em uma subfração 2x2x4 e duas subfrações 2x2x2. Essa configuração requer a versão 1.36.0-gke.3712000 ou mais recente no canal rápido.

    Com o subfatiamento dinâmico, é possível executar várias cargas de trabalho em um único pool de nós físicos. Por exemplo, é possível executar ajuste fino, experimentação e inferência on-line simultâneos. O subfatiamento fornece isolamento elétrico e de rede entre essas subfrações, o que ajuda a isolar falhas ou impactos de desempenho entre cargas de trabalho.

Principais características das configurações de fatiamento dinâmico

As configurações de fatiamento dinâmico têm as seguintes características:

  • Provisionamento incremental de pools de nós: o fatiamento dinâmico usa 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 que compreendem grupos de 16 nós de VMs do Ironwood (TPU7x), o que permite continuar provisionando e utilizando até mesmo cubos parcialmente não íntegros.
  • Controlador de fração: 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 fração gerencia o ciclo de vida de um recurso personalizado de fração, que representa uma fração dinâmica (processando a criação, o monitoramento contínuo e a exclusão). Ele também propaga dados de integridade da infraestrutura (host, ICI, OCS) para rótulos de nós para ajudar a identificar nós candidatos íntegros.
  • Recurso personalizado de fração: representa a fração lógica e inicia a configuração dinâmica de links entre nós (ICI e OCS) para formar a topologia de TPU solicitada. Esse processo une vários sub-blocos (superfatiamento) ou isola uma topologia menor em um único sub-bloco (subfatiamento). É possível inspecionar o progresso ou a integridade da formação de fração dinâmica inspecionando os campos de status do recurso personalizado Slice.

Requisitos

Para usar o fatiamento dinâmico no GKE, você precisa atender aos seguintes requisitos:

  • Use um cluster padrão no canal rápido em uma das seguintes versões:
    • Para a configuração de superfatiamento dinâmico (topologias iguais ou maiores que 4x4x4), use a versão 1.35.2-gke.1842000 ou mais recente.
    • Para a configuração de subfatiamento dinâmico (topologias menores que 4x4x4), use a versão 1.36.0-gke.3712000 ou mais recente.
  • Use a versão do Ironwood (TPU7x).
  • Use a imagem do Container-Optimized OS para seus nós.
  • Para usar o provisionamento incremental, use reservas de modo de capacidade total. O modo de capacidade total é um recurso ativado pelo Cluster Director da TPU.
  • Para o subfatiamento dinâmico, verifique se os nós têm eventos de manutenção pendentes. Monitore suas instâncias para eventos de manutenção pendentes. Se algum dos seus nós tiver um evento de manutenção pendente com um horário de término entre 18 de setembro de 2026 e 30 de setembro de 2026, acione manualmente o evento de manutenção do host nesses nós antes de usar o subfatiamento.

Usar programadores para fatiamento dinâmico

Para usar o fatiamento dinâmico, você pode usar uma das seguintes opções:

A seguir