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:
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:
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:
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
- Exécutez le serveur TensorBoard et accédez à l'onglet Profile (Profil).
- Dans l'outil de statistiques collectives DCN, triez le tableau par Blocage total cumulé et par ordre décroissant.
- 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.
- 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.
- 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
etrecv-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. - 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érationsrecv-done
sont généralement bloquées sur le réseau pour obtenir les données. - 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.