Profiler des environnements à plusieurs tranches

Les environnements à plusieurs tranches de Cloud TPU sont composés de plusieurs tranches de pod TPU qui communiquent sur le réseau de centre de données (DCN). Vous pouvez utiliser l'outil de statistiques collectives DCN pour afficher des informations sur l'efficacité avec laquelle votre environnement à plusieurs tranches d'âge utilise le réseau DCN. Plus précisément, l'outil de statistiques collectives DCN vous permet de:

  • Afficher et comprendre les performances du réseau entre les tranches en fonction des données collectées
  • Identifier les goulots d'étranglement qui affectent les performances
  • Optimiser les performances de votre modèle

Toutes les métriques de l'outil de statistiques collectives DCN sont générées par TPU.

Terminologie

L'outil de statistiques collectives DCN affiche des métriques décrivant la communication entre les tranches TPU dans un environnement à plusieurs tranches. Lorsque l'environnement d'exécution TPU initie une communication entre les tranches, une série d'opérations est utilisée:

send
Interrompt l'hôte pour démarrer l'accès direct à la mémoire (DMA, Direct Memory Access) et lui fournit un tampon rempli 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 pour que l'hôte remplisse les données transférées.
recv-done
Indique à l'hôte que les données ont été reçues.

Un collectif est lancé lorsqu'une opération send se produit et se termine lorsque l'opération recv-done correspondante se produit.

Heure Slack

Mesure du temps que le collectif est capable d'envoyer et de recevoir des données. Cela n'inclut pas les opérations send, send-done, recv ou recv-done. Prenons l'exemple du calendrier suivant:

Puce de pod v5e

Dans cet exemple, le temps Slack est calculé comme suit:

Durée Slack = t1 + t2 + t3

Augmenter le temps de jeu réduit le risque de bloquer le TPU pour un collectif. Vous pouvez augmenter ce temps en choisissant une autre méthode de segmentation.

Durée de blocage

Durée moyenne passée par la collectivité sur les opérations d'envoi, d'envoi terminé, de réception et de réception terminée. Notez que cela n'inclut pas le temps passé à transmettre des données. Prenons l'exemple du calendrier suivant:

Puce de pod v5e

Dans cet exemple, la durée de blocage est calculée comme suit:

Durée de blocage = tsend + tsend-done + trecv + trecv-done

Durée observée

Délai entre les opérations send et recv-done, y compris la durée d'envoi et de réception des données. Prenons l'exemple du calendrier suivant:

Puce de pod v5e

La durée observée est calculée comme suit:

Durée observée = tsend + t1 + tsend-done + t2 + trecv + t3 + trecv-done

Occurrences

Nombre de fois qu'un collectif est lancé et terminé au cours d'une durée de profil. Un collectif est lancé lorsqu'une opération send se produit et se termine lorsque l'opération recv-end correspondante se produit. L'opération send et l'opération recv-done correspondante doivent se produire dans une durée de profil pour être incluses dans cette métrique.

Décrochage total cumulé

Temps total de blocage d'un TPU par un collectif pendant la durée d'un profil. Le blocage total de l'agrégation est calculé comme suit:

Total agrégé = durée de blocage * occurrences

Taille des données transmises

Quantité de données transmises sur le réseau pour la collectivité pendant la durée de vie du profil.

Bande passante requise

Bande passante requise pour transmettre des données dans la marge fournie. Vous pouvez utiliser cette métrique pour voir le nombre de collectifs en concurrence pour la bande passante réseau pendant la durée du profil. La bande passante requise est calculée comme suit:

Bande passante requise = taille des données transmises / temps de jeu

État de l'outil

Le tableau suivant indique la version d'exécution de TensorFlow ou de TPU requise pour chaque métrique affichée dans l'outil de statistiques collectives DCN.

Statistiques collectives DCN TensorFlow de la version d'exécution de TPU compatible
Temps Slack TensorFlow 2.15.0, tensorboard 2.15.1 et tensorboard-plugin-profile 2.15.0
Durée de blocage TensorFlow 2.15.0, tensorboard 2.15.1 et tensorboard-plugin-profile 2.15.0
Durée observée TensorFlow 2.15.0, tensorboard 2.15.1 et tensorboard-plugin-profile 2.15.0
Occurrences TensorFlow 2.15.0, tensorboard 2.15.1 et tensorboard-plugin-profile 2.15.0
Décrochage total cumulé tb-nuit, tb-nightly, tbp-nightly
Taille des données transmises tb-nuit, tb-nightly, tbp-nightly
Bande passante requise tb-nuit, tb-nightly, tbp-nightly

Analyser l'outil de statistiques collectives DCN

  1. Exécutez le serveur TensorBoard et accédez à l'onglet Profile (Profil).
  2. Dans l'outil de statistiques collectives DCN, triez le tableau par Blocage total cumulé et par ordre décroissant.
  3. Identifiez le nom collectif DCN qui présente le blocage total cumulé. Si la durée de blocage agrégée de ce collectif est considérablement élevée par rapport aux autres, cela peut indiquer un goulot d'étranglement dans le collectif DCN.
  4. Multipliez la bande passante requise par le collectif DCN par le nombre de cœurs. Il y a huit cœurs par hôte TPU v4. La bande passante requise pour un collectif est donc de 8 fois la valeur affichée. Si la bande passante requise est supérieure à la bande passante réseau maximale du TPU, cela peut signifier que le réseau est encombré. Pour réduire la bande passante requise, essayez de modifier le mécanisme de segmentation que vous utilisez. Pour en savoir plus sur les mécanismes de segmentation, consultez la page Présentation de Cloud TPU Multislice.
  5. Générez un fichier de vidage HLO pour déterminer s'il existe des problèmes de compilateur. Il est préférable d'effectuer une distribution ramifiée des opérations send et recv-done pour un collectif afin de permettre la programmation d'autres opérations HLO qui se chevauchent. Le chevauchement d'un plus grand nombre d'opérations HLO réduit le temps de blocage du TPU.
  6. Vérifiez la durée des opérations recv-done dans le lecteur de traces pour le collectif DCN qui a le blocage total cumulé maximal. Si la durée du transfert est longue, il peut y avoir un goulot d'étranglement de la bande passante, car les opérations recv-done sont généralement bloquées sur le réseau pour obtenir les données.
  7. Si la durée des opérations recv-done n'est pas trop longue par rapport au temps de pause, cela peut indiquer un problème matériel.