Strumento per le statistiche su larga scala

Puoi utilizzare lo strumento Statistiche Megascale per analizzare le prestazioni della comunicazione tra slice dei carichi di lavoro che si estendono su più slice TPU che comunicano tramite la rete di data center (DCN).

Tutte le metriche visualizzate nello strumento Statistiche Megascale vengono generate in base alla TPU.

Piattaforme supportate

Lo strumento Statistiche Megascale è supportato solo sulle TPU.

Lo strumento mostra le metriche relative alla comunicazione tra le sezioni TPU, che comportano le seguenti operazioni:

  • send: interrompe l'host per avviare l'accesso diretto alla memoria (DMA) e fornisce un buffer compilato all'host per avviare il trasferimento dei dati.
  • send-done: segnala all'host che il trasferimento dei dati è stato completato.
  • recv: fornisce un buffer vuoto che l'host può riempire con i dati trasferiti.
  • recv-done: segnala all'host che i dati sono stati ricevuti.

Un'operazione collettiva viene avviata da un'operazione send e completata dall'operazione recv-done corrispondente. L'invio effettivo dei dati avviene dopo il completamento dell'operazione di invio. L'operazione send-done viene eseguita dopo l'invio dei dati. Allo stesso modo, i dati vengono ricevuti dopo il completamento dell'operazione recv. L'operazione recv-done si verifica dopo la ricezione dei dati.

Componenti dell'interfaccia

Lo strumento mostra una tabella con le seguenti colonne, con una riga per ogni operazione collettiva profilata:

  • Nome collettivo DCN: assegnato da XLA.
  • Nome operazione Recv: il nome dell'operazione recv-done della TPU. In questo modo è possibile cercare facilmente in Trace Viewer le operazioni TPU collettive corrispondenti.
  • Send op name: Il nome dell'operazione TPU send.
  • Tempo di slack: definito come il tempo indipendente dalla rete che il collettivo ha a disposizione per trasmettere i dati. È una misura del tempo a disposizione del collettivo per inviare e ricevere dati, escluse le operazioni send, send-done, recv o recv-done. L'aumento del tempo di inattività riduce le possibilità di bloccare la TPU per un collettivo. Ad esempio, data la seguente cronologia:

cronologia che mostra il tempo di inattività

Slack time is calculated in this example as:

Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
  • Durata osservata: la durata osservata per ogni collettivo. Viene calcolato come l'intervallo tra l'inizio dell'operazione send e la fine dell'operazione recv-done corrispondente, incluso il tempo impiegato per l'invio e la ricezione dei dati. Ad esempio, data la seguente cronologia:

cronologia che mostra la durata osservata

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>
  • Durata dello stallo: il periodo di tempo in cui la collettività blocca la TPU. Si tratta della durata totale del tempo che il collettivo trascorre nelle operazioni send, send-done, recv e recv-done, escluso il tempo trascorso a trasmettere i dati. Ad esempio, data la seguente cronologia:

sequenza temporale che mostra la durata dello stallo

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>
  • Occorrenze: il numero totale di volte in cui un collettivo viene avviato e completato durante la durata di un profilo. L'operazione send e l'operazione recv-done corrispondente devono verificarsi entro la durata del profilo per essere incluse in questa metrica.
  • Stallo totale aggregato: la quantità totale di tempo in cui un collettivo blocca una TPU durante la durata di un profilo. Il totale dell'aggregazione dello stallo viene calcolato come segue:
    • Aggregated total stall = stall duration * occurrences
  • Dimensioni dei dati trasmessi: la quantità di dati trasmessi sulla rete per la raccolta, calcolata in base alla forma dell'operazione XLA.
  • Larghezza di banda richiesta: la larghezza di banda necessaria per trasmettere i dati entro il margine fornito. Puoi utilizzare questa metrica per visualizzare il numero di collettivi in competizione per la larghezza di banda di rete durante la durata del profilo. La larghezza di banda richiesta viene calcolata come segue:
    • Larghezza di banda richiesta = dimensione dei dati trasmessi / tempo di riserva

Analisi dei dati dello strumento Statistiche Megascale

Per analizzare i dati presentati nello strumento:

  1. Ordina la tabella in base a Aggregated Total Stall in ordine decrescente.
  2. Identifica il nome collettivo DCN con il Aggregated Total Stall più alto. Un valore significativamente elevato rispetto ad altri potrebbe indicare un collo di bottiglia.
  3. Moltiplica il Required Bandwidth del collettivo DCN per il numero di core (ad es. 8 per host TPU v4). Se questo valore è maggiore della larghezza di banda massima della rete della TPU, potrebbe indicare una congestione della rete. Prova a modificare il meccanismo di sharding per ridurre la larghezza di banda richiesta.
  4. Genera un dump HLO per verificare la presenza di problemi del compilatore. L'espansione delle operazioni send e recv-done può consentire la pianificazione di un maggior numero di operazioni HLO sovrapposte e ridurre il tempo di stallo della TPU.
  5. Controlla la durata delle operazioni recv-done in Trace Viewer per il collettivo con il blocco totale aggregato massimo. Una durata del trasferimento elevata potrebbe indicare un collo di bottiglia della larghezza di banda, poiché le operazioni recv-done sono in genere bloccate sulla rete.
  6. Se la durata delle operazioni recv-done non è eccessivamente elevata rispetto al tempo di riserva, potrebbe indicare un problema hardware.