Outil de statistiques Megascale

Vous pouvez utiliser l'outil de statistiques Megascale pour analyser les performances de communication entre les tranches des charges de travail qui s'étendent sur plusieurs tranches TPU communiquant sur le réseau du centre de données (DCN).

Toutes les métriques affichées dans l'outil de statistiques Megascale sont générées par TPU.

Plates-formes compatibles

L'outil de statistiques Megascale n'est compatible qu'avec les TPU.

L'outil affiche des métriques liées à la communication entre les tranches TPU, qui impliquent les opérations suivantes :

  • send : interrompt l'hôte pour démarrer l'accès direct à la mémoire (DMA, Direct Memory Access) et fournit un tampon rempli à l'hôte pour démarrer le transfert de données.
  • send-done : indique à l'hôte que le transfert de données est terminé.
  • recv : fournit un tampon vide que l'hôte peut remplir avec les données transférées.
  • recv-done : signale à l'hôte que les données ont été reçues.

Un collectif est lancé par une opération send et terminé par l'opération recv-done correspondante. L'envoi effectif des données a lieu une fois l'opération d'envoi terminée. L'opération send-done a lieu après l'envoi des données. De même, les données sont reçues une fois l'opération recv terminée. L'opération recv-done a lieu après la réception des données.

Composants d'interface

L'outil affiche un tableau comportant les colonnes suivantes, avec une ligne pour chaque opération collective profilée :

  • Nom du collectif DCN : attribué par XLA.
  • Nom de l'opération Recv : nom de l'opération recv-done du TPU. Cela permet de rechercher facilement les opérations TPU collectives correspondantes dans le lecteur de traces.
  • Envoyer le nom de l'opération : nom de l'opération send du TPU.
  • Temps de marge : temps indépendant du réseau dont dispose le collectif pour transmettre les données. Il s'agit d'une mesure du temps dont dispose le collectif pour envoyer et recevoir des données, à l'exclusion des opérations send, send-done, recv ou recv-done. Le fait d'augmenter le temps de relâchement réduit les risques de blocage du TPU pour un collectif. Par exemple, prenons la chronologie suivante :

Chronologie indiquant le temps de marge

Slack time is calculated in this example as:

Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
  • Durée observée : durée observée pour chaque collectif. Il est calculé comme l'intervalle entre le début de l'opération send et la fin de l'opération recv-done correspondante, y compris le temps passé à envoyer et à recevoir des données. Par exemple, prenons la chronologie suivante :

Chronologie indiquant la durée observée

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>
  • Durée du blocage : durée pendant laquelle le collectif bloque le TPU. Il s'agit de la durée totale passée par le collectif dans les opérations send, send-done, recv et recv-done, sans inclure le temps passé à transmettre les données. Par exemple, prenons la chronologie suivante :

Chronologie indiquant la durée du blocage

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>
  • Occurrences : nombre total de fois qu'un collectif est lancé et terminé pendant la durée d'un profilage. L'opération send et l'opération recv-done correspondante doivent avoir lieu pendant la durée du profilage pour être incluses dans cette métrique.
  • Temps de blocage total agrégé : durée totale pendant laquelle un collectif bloque un TPU au cours d'un profilage. Le temps de blocage total agrégé est calculé comme suit :
    • Temps de blocage total agrégé = durée de blocage * nombre d'occurrences
  • Taille des données transmises : quantité de données transmises sur le réseau pour le collectif, calculée en fonction de la forme de l'opération XLA.
  • Bande passante requise : bande passante requise pour transmettre les données dans le temps de relâchement fourni. Vous pouvez utiliser cette métrique pour afficher le nombre de collectifs en concurrence pour la bande passante du réseau pendant la durée du profilage. La bande passante requise est calculée comme suit :
    • Bande passante requise = taille des données transmises / temps de relâchement

Analyser les données de l'outil de statistiques Megascale

Pour analyser les données présentées dans l'outil :

  1. Triez le tableau par Aggregated Total Stall dans l'ordre décroissant.
  2. Identifiez le nom du collectif DCN qui présente le Aggregated Total Stall le plus élevé. Une valeur nettement plus élevée que les autres peut indiquer un goulot d'étranglement.
  3. Multipliez le Required Bandwidth du collectif DCN par le nombre de cœurs (par exemple, (8 par hôte TPU v4). Si cette valeur est supérieure à la bande passante réseau maximale du TPU, cela peut indiquer une congestion du réseau. Essayez de modifier le mécanisme de segmentation pour réduire la bande passante requise.
  4. Générez un dump HLO pour vérifier s'il existe des problèmes de compilation. La distribution ramifiée des opérations send et recv-done peut permettre de planifier un plus grand nombre d'opérations HLO qui se chevauchent et de réduire le temps de blocage du TPU.
  5. Vérifiez la durée des opérations recv-done dans le lecteur de traces pour le collectif qui présente le temps de blocage total agrégé maximal. Une durée de transfert élevée peut indiquer un goulot d'étranglement de la bande passante, car les opérations recv-done sont généralement bloquées sur le réseau.
  6. Si la durée des opérations recv-done n'est pas excessivement élevée par rapport au temps de relâchement, cela peut indiquer un problème matériel.