Outil Graph Viewer

Vous pouvez utiliser le lecteur de graphiques pour visualiser la structure graphique de votre programme XLA. Il affiche le graphique des opérations de haut niveau (HLO).

Plates-formes compatibles

TPU: compatible

GPU: compatible

Composants d'interface

Le visualiseur de graphiques peut être contrôlé à l'aide des options suivantes:

  1. Menu déroulant "Sélectionner un module XLA", dans lequel vous pouvez choisir un module HLO dans la liste disponible pour la visualisation.

  2. Un champ "Nom de l'opération", dans lequel vous saisissez le nom d'une opération pour la sélectionner comme nœud principal et visualiser ses voisins. Appuyer sur Entrée après avoir saisi le nom de l'opération permet de visualiser les nœuds environnants.

  3. Un sélecteur de largeur de graphique, qui contrôle la distance maximale des nœuds par rapport au nœud principal inclus dans la visualisation.

  4. Un sélecteur de métadonnées, que vous pouvez utiliser pour activer ou désactiver l'affichage des métadonnées d'opération incluses par le compilateur, le cas échéant. Notez que vous devez cliquer de nouveau sur "Graphique de recherche" après avoir coché cette case.

  5. Case à cocher "Fusionner la fusion" que vous pouvez utiliser pour réduire ou développer les composants des opérations fusionnées. Notez que vous devrez cliquer à nouveau sur "Graphique de recherche" après avoir coché cette case.

  6. Boutons ou touches de zoom avant/arrière, bien que vous puissiez également utiliser la souris pour faire un zoom.

  7. Liens permettant de télécharger le graphique au format SVG ou DOT.

  8. Grâce à la fonctionnalité de recherche, vous pouvez rapidement localiser et vous concentrer sur des opérations spécifiques dans le graphique potentiellement volumineux.

  9. Pour figer le panneau des données d'exécution sur une opération spécifique, effectuez un clic droit sur l'opération.

Utiliser la visionneuse de graphiques

Par défaut, aucune opération n'est sélectionnée dans le visualiseur de graphiques. L'écran est donc vide. Recherchez l'opération qui vous intéresse pour effectuer un zoom avant et commencer à parcourir le graphique. Vous commencez souvent par l'un des autres outils (par exemple, OpProfile pour identifier l'opération la plus chronophage ou Trace Viewer pour identifier la cause d'une bulle de pipeline). Cliquez sur l'opération dans ces outils pour obtenir un lien direct vers la même opération dans le Graph Viewer.

Lorsque vous pointez sur une zone (représentant une opération HLO), vous pouvez souvent voir la ligne de votre code utilisateur correspondant à l'opération où la fonction a été définie. Ces informations ne sont disponibles que si ces métadonnées sont fournies à XProf via les multiples couches de transformation que votre programme Python subit avant de générer un exécutable d'accélérateur.

Notez que le profileur reçoit des informations au niveau du HLO à partir d'un graphique "HLO optimisé", près du point où il est prêt à être converti en code spécifique à l'accélérateur par le backend du compilateur. Le Graph Viewer et tous les outils XProf gèrent donc cette représentation HLO interne XLA de bas niveau, plutôt que StableHLO ou une représentation proche du framework ML.

Bien que le graphique lui-même soit purement statique et soit acquis directement à partir de XLA, même sans exécuter le programme, le visualiseur de graphiques superpose des informations d'exécution supplémentaires sur le graphique pour le rendre plus utile. Par exemple, lorsque vous pointez sur une opération, une section s'affiche sur le côté gauche de l'interface utilisateur, indiquant le nombre de fois où cette opération a été exécutée pendant la durée du profil et le temps d'exécution moyen. Il calcule et affiche également différents nombres d'utilisation et de bande passante. Ceux-ci utilisent l'analyse des coûts statiques de XLA pour les FLOPS et les octets consommés, et calculent un taux en fonction du temps d'exécution mesuré.