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:
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:
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:
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
Execute o servidor do TensorBoard e acesse a guia Perfil.
Classifique a tabela na ferramenta de estatísticas coletivas da DCN por Total agregado de espera em ordem decrescente.
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.
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.
Gere um despejo de HLO para determinar se há problemas no compilador. É melhor fazer fan-out das operações
send
erecv-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.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çõesrecv-done
geralmente são bloqueadas na rede para receber os dados.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.