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:
- TPUs no GKE.
- Visão geral do modo de capacidade total da TPU. Os recursos de fatiamento dinâmico estão disponíveis exclusivamente em TPUs que usam o modo de capacidade total.
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
JobSete 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
4x4x4para formar uma topologia4x4x8. Esse recurso permite criar frações iguais ou maiores que uma topologia4x4x4. 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,2x2x4e2x4x4. Por exemplo, é possível particionar um sub-bloco4x4x4em uma subfração2x2x4e duas subfrações2x2x2. 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.
- Para a configuração de superfatiamento dinâmico (topologias iguais ou maiores que
- 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:
- Use seu próprio programador para gerenciar recursos personalizados Slice. Essa opção é útil se você tiver requisitos de programação complexos ou se quiser integrar o fatiamento dinâmico à sua infraestrutura de programação atual. Para começar, consulte Usar o fatiamento dinâmico com um programador personalizado.
- Use um programador para criar automaticamente um recurso personalizado Slice. É possível configurar Kueue e agendamento com reconhecimento de topologia (TAS, na sigla em inglês) para criar automaticamente um recurso personalizado Slice. Para começar, consulte Programar frações dinâmicas com o Kueue e o TAS.
A seguir
- Solicitar capacidade de TPU no modo de capacidade total.
- Programar frações dinâmicas com o Kueue e o TAS.
- Usar o fatiamento dinâmico com um programador personalizado.