Profilage des environnements Multislice
Les environnements Multislice 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 du réseau DCN pour afficher des informations sur l'efficacité avec laquelle votre environnement multicouche utilise le réseau DCN. Plus précisément, l'outil DCN Collective Stats vous permet de:
- Afficher et analyser les performances du réseau inter-tranches en fonction des données collectées
- Identifier les goulots d'étranglement
- Optimiser les performances de votre modèle
Toutes les métriques de l'outil de statistiques collectives du DCN sont générées par TPU.
Terminologie
L'outil de statistiques collectives du DCN affiche des métriques qui décrivent la communication qui s'effectue entre les tranches TPU dans un environnement Multislice. Lorsque l'environnement d'exécution TPU lance la communication inter-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) et fournit un tampon rempli à l'hôte pour démarrer le transfert de données.
send-done
- Signale à 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é lorsqu'une opération send
se produit et se termine lorsqu'une opération recv-done
correspondante se produit.
Temps de pause
Mesure du temps pendant lequel le collectif peut envoyer et recevoir des données.
Cela n'inclut pas les opérations send
, send-done
, recv
ou recv-done
.
Prenons l'exemple suivant:
Dans cet exemple, le temps de latence est calculé comme suit:
Temps de latence = t1 + t2 + t3
Augmenter le temps de latence réduit les risques de blocage du TPU pour un collectif. Vous pouvez augmenter le temps de latence en choisissant une autre méthode de partitionnement.
Durée de la mise en veille
Durée moyenne du temps passé par le collectif dans 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 suivant:
Dans cet exemple, la durée de l'arrêt est calculée comme suit:
Durée d'arrêt = tsend + tsend-done + trecv + trecv-done
Durée observée
Durée entre les opérations send
et recv-done
, y compris le temps d'envoi et de réception des données. Prenons l'exemple 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 de la durée d'un profil. Un collectif est lancé lorsqu'une opération send
se produit et se termine lorsqu'une opération recv-end
correspondante se produit. L'opération send
et son opération recv-done
correspondante doivent se produire pendant la durée d'un profil pour être incluses dans cette métrique.
Temps d'arrêt total cumulé
Durée totale pendant laquelle une opération collective bloque un TPU pendant la durée d'un profil. Le blocage total de l'agrégation est calculé comme suit:
Arrêt total agrégé = durée de l'arrêt * occurrences
Taille des données transmises
Quantité de données transmises sur le réseau pour le collectif pendant la durée du profil.
Bande passante requise
Bande passante requise pour transmettre des données dans la marge de manœuvre fournie. Vous pouvez utiliser cette métrique pour voir le nombre de collectifs qui se disputent 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 latence
État de l'outil
Le tableau suivant indique la version de TensorFlow ou de l'environnement d'exécution TPU requise pour chaque métrique affichée dans l'outil Collective Stats de DCN.
Statistiques collectives du CDN | Version de TensorFlow compatible avec la version d'exécution TPU |
---|---|
Temps de pause | TensorFlow 2.15.0, tensorboard 2.15.1 et tensorboard-plugin-profile 2.15.0 |
Durée de la mise en veille | 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 |
Temps d'arrêt total cumulé | tf-nightly, tb-nightly, tbp-nightly |
Taille des données transmises | tf-nightly, tb-nightly, tbp-nightly |
Bande passante requise | tf-nightly, tb-nightly, tbp-nightly |
Analyser l'outil de statistiques collectives du DCN
- Exécutez le serveur TensorBoard et accédez à l'onglet Profile (Profil).
- Triez le tableau dans l'outil de statistiques collectives du DCN par Total Stall cumulé dans l'ordre décroissant.
- Identifiez le nom collectif de DCN qui affiche le nombre total d'arrêts cumulés le plus élevé. Si la durée d'arrêt cumulée de cette collective est considérablement élevée par rapport aux autres, cela peut indiquer qu'il existe un goulot d'étranglement dans la collective DCN.
- Multipliez la bande passante requise du collectif DCN par le nombre de cœurs. Il y a huit cœurs par hôte TPU v4. La bande passante requise pour une collective est donc huit 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 saturé. Pour réduire la bande passante requise, essayez de modifier le mécanisme de fractionnement que vous utilisez. Pour en savoir plus sur les mécanismes de fractionnement, consultez la présentation de la multislice Cloud TPU.
- Générez un vidage HLO pour déterminer si des problèmes de compilation existent. Il est préférable de développer les opérations
send
etrecv-done
pour un collectif afin de permettre la planification d'opérations HLO plus chevauchantes. Le chevauchement d'un plus grand nombre d'opérations HLO réduit le temps d'arrêt du TPU. - Vérifiez la durée des opérations
recv-done
dans l'outil de visualisation des traces pour le collectif DCN présentant le blocage total cumulé maximal. Si la durée du transfert est élevée, un goulot d'étranglement de la bande passante peut se produire, 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 élevée par rapport au temps de latence, cela peut indiquer un problème matériel.