Como criar o perfil de ambientes Multislice
Os ambientes Multislice do Cloud TPU são compostos por várias frações Pod de TPU que se comunicam pela rede de data center (DCN, na sigla em inglês). Use a ferramenta de estatísticas coletivas DCN para ver informações sobre a eficácia com que o ambiente Multislice está utilizando a rede DCN. Especificamente, a ferramenta DCN Collective Stats permite:
- Visualizar e entender o desempenho de rede entre fatias com base nos dados coletados
- Identificar gargalos de desempenho
- Otimizar o desempenho do modelo
Todas as métricas na ferramenta de estatísticas coletivas da DCN são geradas por TPU.
Terminologia
A ferramenta de estatísticas coletivas da DCN exibe métricas que descrevem a comunicação que ocorre entre frações de TPU em um ambiente Multislice. Quando o ambiente de execução da TPU inicia a comunicação entre fatias, uma série de operações é usada:
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.
Um coletivo é iniciado quando uma operação send
ocorre e é concluído quando
a operação recv-done
correspondente ocorre.
Tempo do Slack
Uma medida de tempo que o coletivo é capaz de enviar e receber dados.
Isso não inclui as operações send
, send-done
, recv
ou recv-done
.
Por exemplo, considerando o seguinte cronograma:
O tempo de Slack é calculado neste exemplo da seguinte forma:
Tempo no Slack = t1 + t2 + t3
Aumentar o tempo de folga reduz as chances de paralisar a TPU para um coletivo. É possível aumentar o tempo de folga escolhendo um método de fragmentação diferente.
Duração da parada
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 o seguinte cronograma:
A duração da parada é calculada neste exemplo como:
Duração da parada = tsend + tsend-done + trecv + trecv-done
Duração observada
O tempo entre as operações send
e recv-done
, incluindo o
tempo de envio e recebimento de dados. Por exemplo, considerando o seguinte cronograma:
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 um coletivo é iniciado e concluído durante a
duração de um perfil. Um coletivo é iniciado quando uma operação send
ocorre e é
concluído quando a operação recv-end
correspondente ocorre. A operação send
e a operação recv-done
correspondente precisam ocorrer dentro de uma duração de perfil para serem
incluídas nessa métrica.
Total de paradas agregado
O tempo total que um coletivo paralisa uma TPU durante a duração de um perfil. A parada total da agregação é calculada da seguinte forma:
Total agregado de paradas = duração da parada * ocorrências
Tamanho de transmissão dos dados
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. É possível usar essa 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 da transmissão de dados / tempo de folga
Status da ferramenta
A tabela a seguir mostra a versão do ambiente de execução do TensorFlow ou TPU necessária para cada métrica exibida na ferramenta DCN Collective Stats.
Estatísticas do DCN Collective | Versão compatível do ambiente de execução da TPU |
---|---|
Tempo do Slack | TensorFlow 2.15.0, TensorBoard 2.15.1 e Tensorboard-plugin-profile 2.15.0 |
Duração da parada | 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 paradas agregado | tf-nightly, tb-nightly, tb-nightly |
Tamanho de transmissão dos dados | tf-nightly, tb-nightly, tb-nightly |
Largura de banda necessária | tf-nightly, tb-nightly, tb-nightly |
Como analisar a ferramenta de estatísticas do DCN Collective
- Execute o servidor do TensorBoard e acesse a guia Perfil.
- Classifique a tabela na ferramenta de estatísticas coletivas da DCN por Parada total agregada em ordem decrescente.
- Identifique o nome coletivo DCN que tem a maior Loja total agregada. Se a duração da parada agregada desse coletivo for significativamente alta em comparação com os outros, isso pode indicar que há um gargalo no coletivo DCN.
- Multiplique a largura de banda necessária do coletivo DCN pelo número de núcleos. Como há oito núcleos por host da TPU v4, a largura de banda necessária para um coletivo é oito x o valor exibido. Se a largura de banda necessária for maior que a largura máxima da rede da TPU, isso pode significar que a rede está congestionada. Para reduzir a largura de banda necessária, tente alterar o mecanismo de fragmentação usado. Para mais informações sobre mecanismos de fragmentação, consulte Visão geral do Cloud TPU Multislice.
- Gere um HLO dump para determinar se há algum problema do compilador. É
melhor distribuir as operações
send
erecv-done
para um coletivo para permitir a programação de operações HLO mais sobrepostas. A sobreposição de mais operações de HLO reduz o tempo de inatividade da TPU. - Verifique a duração das operações
recv-done
no Visualizador de rastreamento para o coletivo DCN que tem a parada total agregada máxima. Se a duração da transferência for alta, poderá haver um gargalo de largura de banda, porque as operaçõesrecv-done
geralmente são bloqueadas na rede para acessar os dados. - Se a duração das operações
recv-done
não for muito alta em comparação com o tempo de folga, isso pode indicar um problema de hardware.