Ferramenta Megascale Stats

Use a ferramenta Megascale Stats para analisar o desempenho da comunicação entre frações de cargas de trabalho que abrangem várias frações de TPU e se comunicam pela rede do data center (DCN).

Todas as métricas mostradas na ferramenta Megascale Stats são geradas por TPU.

Plataformas compatíveis

A ferramenta Megascale Stats só é compatível com TPUs.

A ferramenta mostra métricas relacionadas à comunicação entre frações de TPU, que envolvem as seguintes operações:

  • send: interrompe o host para iniciar o acesso direto à memória (DMA) 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 operação de comunicação coletiva é iniciada por uma operação send e concluída pela operação recv-done correspondente. O envio real dos dados ocorre após a conclusão da operação de envio. A operação send-done ocorre depois que os dados são enviados. Da mesma forma, os dados são recebidos após a conclusão da operação recv. A operação recv-done ocorre depois que os dados são recebidos.

Componentes de interface

A ferramenta mostra uma tabela com as seguintes colunas, com uma linha para cada operação coletiva analisada:

  • Nome da operação de comunicação coletiva da DCN: atribuído pelo XLA.
  • Nome da operação de recebimento: o nome da operação recv-done da TPU. Isso oferece uma maneira fácil de pesquisar no visualizador de rastreamentos as operações coletivas correspondentes da TPU.
  • Nome da operação de envio: o nome da operação da TPU send.
  • Tempo livre: definido como o tempo independente da rede que o coletivo tem para transmitir os dados. É uma medida do tempo disponível para a operação de comunicação coletiva enviar e receber dados, excluindo as operações send, send-done, recv ou recv-done. Aumentar o período de tolerância reduz as chances de paralisação da TPU em uma operação de comunicação coletiva. Por exemplo, considere a seguinte linha do tempo:

linha do tempo mostrando o tempo livre

Slack time is calculated in this example as:

Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
  • Duração observada: a duração observada para cada coletivo. Ele é calculado como o intervalo entre o início da operação send e o fim da operação recv-done correspondente, incluindo o tempo gasto enviando e recebendo dados. Por exemplo, considere a seguinte linha do tempo:

linha do tempo mostrando a duração observada

Observed duration is calculated as:

Observed duration = t<sub>send</sub> + t<sub>1</sub> + t<sub>send-done</sub> + t<sub>2</sub> + t<sub>recv</sub> + t<sub>3</sub> + t<sub>recv-done</sub>
  • Duração da paralisação: o período em que a operação de comunicação coletiva paralisa a TPU. Essa é a duração total do tempo que o coletivo passa nas operações send, send-done, recv e recv-done, sem incluir o tempo gasto na transmissão de dados. Por exemplo, considere a seguinte linha do tempo:

linha do tempo mostrando a duração da paralisação

Stall duration is calculated in this example as:

Stall duration = t<sub>send</sub> + t<sub>send-done</sub> + t<sub>recv</sub> + t<sub>recv-done</sub>
  • Ocorrências: o número total de vezes que uma operação de comunicação coletiva é iniciada e concluída durante a duração de um perfil. A operação send e a operação recv-done correspondente precisam ocorrer dentro da duração do perfil para serem incluídas nessa métrica.
  • Tempo total agregado de paralisação: o tempo total de paralisação de uma TPU pela operação de comunicação coletiva durante a duração de um perfil. O total agregado de paralisação é calculado da seguinte forma:
    • Total agregado de paralisação = duração da paralisação * ocorrências
  • Tamanho dos dados transmitidos: a quantidade de dados transmitidos pela rede para a operação de comunicação coletiva, calculada com base no formato da operação XLA.
  • Largura de banda necessária: a largura de banda necessária para transmitir os dados no período de tolerância fornecido. Use essa métrica para conferir o número de operações de comunicação coletiva 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 tolerância

Analisar dados da ferramenta Megascale Stats

Para analisar os dados apresentados na ferramenta:

  1. Classifique a tabela por Aggregated Total Stall em ordem decrescente.
  2. Identifique o nome da operação de comunicação coletiva da DCN com o maior Aggregated Total Stall. Um valor significativamente alto em comparação com outros pode indicar um gargalo.
  3. Multiplique o Required Bandwidth da operação de comunicação coletiva da DCN pelo número de núcleos (por exemplo, 8 por host de TPU v4). Se esse valor for maior que a largura de banda máxima da rede da TPU, isso pode indicar congestionamento. Tente mudar o mecanismo de fragmentação para reduzir a largura de banda necessária.
  4. Gere um despejo de HLO para verificar se há problemas no compilador. A distribuição das operações send e recv-done permite programar mais operações HLO sobrepostas e reduzir o tempo de paralisação da TPU.
  5. Verifique a duração das operações recv-done no visualizador de traces para a operação de comunicação coletiva com o total agregado máximo de paralisação. Uma duração de transferência alta pode indicar um gargalo de largura de banda, já que as operações recv-done geralmente são bloqueadas na rede.
  6. Se a duração das operações recv-done não for muito alta em comparação com o período de tolerância, isso pode indicar um problema de hardware.