Como criar perfis de ambientes Multislice

Os ambientes Multislice do Cloud TPU são compostos por várias frações de TPU que se comunicam pela rede de data center (DCN). Use a ferramenta de estatísticas do Megascale no XProf para conferir informações sobre a eficiência com que seu ambiente Multislice está usando a rede DCN. Especificamente, a ferramenta Megascale Stats permite:

  • Ver e entender a performance da rede entre fatias com base nos dados coletados
  • Identificar gargalos de desempenho
  • Otimizar a performance do modelo

Todas as métricas na ferramenta de estatísticas do Megascale são geradas por TPU. Para ativar essa ferramenta, siga as mesmas etapas para capturar o perfil no seu framework e use a biblioteca XProfiler para configurar uma instância do TensorBoard XProf e ver seus perfis. Desde que a carga de trabalho tenha sido executada como uma carga de trabalho multislice, o TensorBoard vai mostrar a ferramenta "Estatísticas de megascala" para qualquer carga de trabalho multislice.

Para mais detalhes sobre a ferramenta de estatísticas do Megascale no XProf, consulte o guia Ferramenta de estatísticas do Megascale.

Terminologia

A ferramenta de estatísticas coletivas da DCN mostra métricas que descrevem a comunicação entre frações de TPU em um ambiente de várias frações. Quando o tempo de execução da TPU inicia a comunicação entre frações, uma série de operações é usada:

  • send: interrompe o host para iniciar o acesso direto à memória (DMA, na sigla em inglês) e fornece um buffer preenchido ao host para iniciar a transferência de dados.
  • send-done: sinaliza ao host que a transferência de dados foi concluída.
  • recv: fornece um buffer vazio para o host preencher com os dados transferidos.
  • recv-done: sinaliza ao host que os dados foram recebidos.

Uma agregação é iniciada quando uma operação send ocorre e é concluída quando a operação recv-done correspondente acontece.

Tempo de folga

Uma medida do tempo em que o coletivo consegue enviar e receber dados. Isso não inclui as operações send, send-done, recv ou recv-done. Por exemplo, considerando a seguinte linha do tempo:

Chip do pod v5e

O tempo livre é calculado neste exemplo como:

Tempo livre = t1 + t2 + t3

Aumentar o tempo de espera reduz as chances de paralisação da TPU para um coletivo. É possível aumentar o tempo de espera escolhendo outro método de fragmentação.

Duração da paralisação

A duração média do tempo que o coletivo gasta nas operações de envio, envio concluído, recebimento e recebimento concluído. Isso não inclui o tempo gasto na transmissão de dados. Por exemplo, considerando a seguinte linha do tempo:

Chip do pod v5e

A duração da paralisação é calculada neste exemplo como:

Duração da espera = tsend + tsend-done + trecv + trecv-done

Duração observada

A quantidade de tempo entre as operações send e recv-done, incluindo o tempo de envio e recebimento de dados. Por exemplo, considerando a seguinte linha do tempo:

Chip do pod v5e

A duração observada é calculada da seguinte forma:

Duração observada = tsend + t1 + tsend-done + t2 + trecv + t3 + trecv-done

Ocorrências

O número de vezes que uma ação coletiva é iniciada e concluída durante a duração de um perfil. Uma agregação é iniciada quando uma operação send ocorre e é concluída quando a operação recv-end correspondente acontece. A operação send e a recv-done correspondente precisam ocorrer dentro da duração de um perfil para serem incluídas nessa métrica.

Tempo total agregado de espera

O tempo total em que um coletivo paralisa uma TPU durante a duração de um perfil. O total de interrupções de agregação é calculado da seguinte forma:

Total agregado de interrupções = duração da interrupção * ocorrências

Tamanho dos dados transmitidos

A quantidade de dados transmitidos pela rede para o coletivo durante a duração do perfil.

Largura de banda necessária

A largura de banda necessária para transmitir dados dentro da folga fornecida. Use essa métrica para conferir o número de coletivos que disputam a largura de banda da rede durante a duração do perfil. A largura de banda necessária é calculada da seguinte forma:

Largura de banda necessária = tamanho dos dados transmitidos / tempo de folga

Status da ferramenta

A tabela a seguir mostra a versão do TensorFlow ou do tempo de execução da TPU necessária para cada métrica exibida na ferramenta de estatísticas coletivas da DCN.

Estatísticas coletivas da DCN Versão do ambiente de execução do TensorFlow compatível com a TPU
Tempo de folga TensorFlow 2.15.0, TensorBoard 2.15.1 e tensorboard-plugin-profile 2.15.0
Duração da paralisação TensorFlow 2.15.0, TensorBoard 2.15.1 e tensorboard-plugin-profile 2.15.0
Duração observada TensorFlow 2.15.0, TensorBoard 2.15.1 e tensorboard-plugin-profile 2.15.0
Ocorrências TensorFlow 2.15.0, TensorBoard 2.15.1 e tensorboard-plugin-profile 2.15.0
Tempo total agregado de espera tf-nightly, tb-nightly, tbp-nightly
Tamanho dos dados transmitidos tf-nightly, tb-nightly, tbp-nightly
Largura de banda necessária tf-nightly, tb-nightly, tbp-nightly

Como analisar a ferramenta de estatísticas coletivas da DCN

  1. Execute o servidor do TensorBoard e acesse a guia Perfil.

  2. Classifique a tabela na ferramenta de estatísticas coletivas da DCN por Total agregado de espera em ordem decrescente.

  3. Identifique o nome coletivo da DCN com o maior Total agregado de paralisação. Se a duração agregada da espera desse coletivo for significativamente alta em comparação com outros, isso pode indicar um gargalo no coletivo DCN.

  4. Multiplique a largura de banda necessária do coletivo DCN pelo número de núcleos. Há oito núcleos por host de TPU v4. Portanto, a largura de banda necessária para um coletivo é 8 vezes o valor mostrado. Se a largura de banda necessária for maior que a largura de banda máxima da rede da TPU, isso pode significar que a rede está congestionada. Para reduzir a largura de banda necessária, tente mudar o mecanismo de fragmentação que você usa. Para mais informações sobre mecanismos de fragmentação, consulte Visão geral do Cloud TPU Multislice.

  5. Gere um despejo de HLO para determinar se há problemas no compilador. É melhor fazer fan-out das operações send e recv-done para um coletivo e permitir o agendamento de mais operações HLO sobrepostas. A sobreposição de mais operações de HLO reduz o tempo de espera da TPU.

  6. Verifique a duração das operações recv-done no visualizador de rastreamento para o coletivo de DCN que tem o tempo total agregado máximo de espera. Se a duração da transferência for alta, pode haver um gargalo de largura de banda, porque as operações recv-done geralmente são bloqueadas na rede para receber os dados.

  7. Se a duração das operações de recv-done não for muito alta em comparação com o tempo de espera, isso pode indicar um problema de hardware.