Criação de perfis de ambientes com várias fatias
Os ambientes de vários segmentos de TPU na nuvem são compostos por vários segmentos de TPU que comunicam através da rede do centro de dados (DCN). Pode usar a ferramenta de estatísticas de grande escala no XProf para ver informações sobre a eficácia com que o seu ambiente de vários segmentos está a usar a rede DCN. Especificamente, a ferramenta Megascale Stats permite-lhe:
- Veja e compreenda o desempenho da rede entre segmentos com base nos dados recolhidos
- Identifique restrições de desempenho
- Otimize o desempenho do modelo
Todas as métricas na ferramenta de estatísticas da Megascale são geradas por TPU. Para ativar esta ferramenta, siga os mesmos passos para capturar o perfil na sua framework e use a biblioteca XProfiler para configurar uma instância do TensorBoard XProf para ver os seus perfis. Desde que a sua carga de trabalho tenha sido executada como uma carga de trabalho de vários fragmentos, o TensorBoard apresenta a ferramenta "Estatísticas de grande escala" para qualquer carga de trabalho de vários fragmentos.
Para mais detalhes sobre a ferramenta de estatísticas de grande escala no XProf, consulte o guia da ferramenta de estatísticas de grande escala.
Terminologia
A ferramenta de estatísticas coletivas da DCN apresenta métricas que descrevem a comunicação que ocorre entre fatias de TPU num ambiente de várias fatias. Quando o tempo de execução da TPU inicia a comunicação entre fatias, é usada uma série de operações:
send
: interrompe o anfitrião para iniciar o acesso direto à memória (DMA) e fornece um buffer preenchido ao anfitrião para iniciar a transferência de dados.send-done
: sinaliza ao anfitrião que a transferência de dados está concluída.recv
: fornece um buffer vazio para o anfitrião preencher com os dados transferidos.recv-done
: sinaliza ao anfitrião que os dados foram recebidos.
Uma ação coletiva é iniciada quando ocorre uma operação send
e é concluída quando ocorre a operação recv-done
correspondente.
Tempo de folga
Uma medida do tempo durante o qual o coletivo consegue enviar e receber dados.
Isto não inclui as operações send
, send-done
, recv
ou recv-done
.
Por exemplo, tendo em conta a seguinte cronologia:
O tempo de folga é calculado neste exemplo da seguinte forma:
Tempo de folga = t1 + t2 + t3
Aumentar o tempo de folga reduz as hipóteses de paralisar a TPU para um coletivo. Pode aumentar o tempo de folga escolhendo um método de divisão diferente.
Duração da paragem
A duração média do tempo que o coletivo gasta nas operações send, send-done, recv e recv-done. Tenha em atenção que isto não inclui o tempo gasto na transmissão de dados. Por exemplo, tendo em conta a seguinte cronologia:
Neste exemplo, a duração da paragem é calculada da seguinte forma:
Stall duration = tsend + tsend-done + trecv + trecv-done
Duração observada
O período entre as operações send
e recv-done
, incluindo o tempo de envio e receção de dados. Por exemplo, tendo em conta a seguinte cronologia:
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 recolha é iniciada e concluída durante a duração de um perfil. Uma operação coletiva é iniciada quando ocorre uma operação send
e é concluída quando ocorre a operação recv-end
correspondente. A operação send
e a operação recv-done
correspondente têm de ocorrer durante a duração de um perfil para serem incluídas nesta métrica.
Total de paragens agregadas
A quantidade total de tempo em que um coletivo bloqueia uma TPU durante a duração de um perfil. A paralisação total da agregação é calculada da seguinte forma:
Total de paragens agregadas = duração da paragem * ocorrências
Tamanho dos dados transmitidos
A quantidade de dados transmitidos através da 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. Pode usar esta métrica para ver o número de coletivos que competem pela 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
Estado da ferramenta
A tabela seguinte mostra a versão do TensorFlow ou do tempo de execução da TPU necessária para cada métrica apresentada na ferramenta de estatísticas coletivas da DCN.
Estatísticas coletivas da DCN | Versão do tempo de execução do TensorFlow of TPU suportada |
---|---|
Tempo de folga | TensorFlow 2.15.0, TensorBoard 2.15.1 e TensorBoard-plugin-profile 2.15.0 |
Duração da paragem | 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 |
Total de paragens agregadas | 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 aceda ao separador Perfil.
Ordene a tabela na ferramenta de estatísticas coletivas do DCN por Total de bloqueios agregados por ordem descendente.
Identifique o nome coletivo do DCN que tem o Total agregado de bloqueios mais elevado. Se a duração da paragem agregada deste coletivo for significativamente elevada em comparação com outros, isto pode indicar que existe um gargalo no coletivo da DCN.
Multiplique a largura de banda necessária do coletivo DCN pelo número de núcleos. Existem 8 núcleos por anfitrião de TPU v4, pelo que a largura de banda necessária para um coletivo é 8 vezes o valor apresentado. Se a largura de banda necessária for superior à largura de banda máxima da rede da TPU, isto pode significar que a rede está congestionada. Para reduzir a largura de banda necessária, experimente alterar o mecanismo de divisão que usa. Para mais informações sobre os mecanismos de divisão, consulte o artigo Vista geral do Multislice do TPU na nuvem.
Gere um despejo de HLO para determinar se existem problemas de compilação. É melhor distribuir as operações
send
erecv-done
para um coletivo para permitir o agendamento de mais operações HLO sobrepostas. A sobreposição de mais operações HLO reduz o tempo de paragem da TPU.Verifique a duração das operações
recv-done
no Trace Viewer para o coletivo da DCN que tem o total agregado máximo de paragens. Se a duração da transferência for elevada, pode haver um gargalo de largura de banda porque as operações são normalmente bloqueadas na rede para obter os dados.recv-done
Se a duração das operações
recv-done
não for demasiado elevada em comparação com o tempo de folga, isto pode indicar um problema de hardware.