Graph Viewer Tool

Mit dem Diagramm-Viewer können Sie die Diagrammstruktur Ihres XLA-Programms visualisieren. Hier sehen Sie das HLO-Diagramm (High Level Operations).

Unterstützte Plattformen

TPU: unterstützt

GPU: unterstützt

Benutzeroberflächenkomponenten

Die Darstellung im Diagrammbetrachter kann mit den folgenden Optionen gesteuert werden:

  1. Ein Drop-down-Menü „XLA-Modul auswählen“, in dem Sie ein HLO-Modul aus der Liste auswählen, das visualisiert werden soll.

  2. Ein Feld für den Namen der Operation, in das Sie den Namen einer Operation eingeben, um sie als primären Knoten auszuwählen und ihre Nachbarn zu visualisieren. Wenn Sie nach der Eingabe des Befehlsnamens die Eingabetaste drücken, werden die umgebenden Knoten visualisiert.

  3. Ein Auswahlfeld für die Diagrammbreite, mit dem die maximale Entfernung von Knoten zum primären Knoten festgelegt wird, der in der Visualisierung enthalten ist.

  4. Eine Metadatenauswahl, mit der Sie die Anzeige der vom Compiler enthaltenen Vorgangsmetadaten ein- und ausschalten können. Nachdem Sie dieses Kästchen angeklickt haben, müssen Sie noch einmal auf „Diagramm suchen“ klicken.

  5. Ein Kästchen „Merge Fusion“, mit dem Sie die Komponenten der zusammengeführten Vorgänge minimieren oder maximieren können. Hinweis: Nachdem Sie das Kästchen angeklickt haben, müssen Sie noch einmal auf „Graph suchen“ klicken.

  6. Mit den Tasten zum Heranzoomen und Herauszoomen. Sie können auch die Maus verwenden.

  7. Links zum Herunterladen des Diagramms als SVG- oder Punktdatei.

  8. Mit der Suchfunktion können Sie bestimmte Vorgänge im potenziell großen Graphen schnell finden und hervorheben.

  9. Wenn Sie den Bereich für Laufzeitdaten für eine bestimmte Operation einfrieren möchten, klicken Sie mit der rechten Maustaste auf die Operation.

Graph Viewer verwenden

Standardmäßig sind im Diagrammanzeigetool keine Vorgänge ausgewählt. Daher wird ein leerer Bildschirm angezeigt. Suchen Sie nach dem gewünschten Vorgang, um ihn heranzuzoomen und die Grafik zu durchsuchen. Oft beginnen Sie mit einem der anderen Tools, z. B. mit dem Op-Profil, um die zeitaufwendigste Operation zu ermitteln, oder mit dem Trace Viewer, um die Ursache einer Pipeline-Blase zu ermitteln. Wenn Sie in diesen Tools auf die Operation klicken, erhalten Sie einen direkten Link zu derselben Operation im Graph Viewer.

Wenn Sie den Mauszeiger auf ein Feld bewegen, das einen HLO-Vorgang darstellt, sehen Sie oft die Zeile des Nutzercodes, die der Operation entspricht, in der die Funktion definiert wurde. Diese Informationen sind nur verfügbar, wenn diese Metadaten XProf über die mehrere Transformationsschichten zur Verfügung gestellt werden, die Ihr Python-Programm durchläuft, um eine ausführbare Beschleunigerdatei zu generieren.

Der Profiler empfängt Informationen auf HLO-Ebene aus einem „optimierten HLO“-Grafikknoten, kurz bevor er vom Compiler-Backend in acceleratorspezifischen Code umgewandelt werden kann. Der Graph Viewer und alle XProf-Tools verarbeiten daher diese Low-Level-XLA-interne HLO-Darstellung anstelle von StableHLO oder einer Darstellung, die dem ML-Framework nahekommt.

Der Graph selbst ist rein statisch und wird direkt aus XLA abgerufen, auch ohne Ausführung des Programms. Im Graph Viewer werden zusätzliche Informationen zur Laufzeit über den Graphen gelegt, um ihn nützlicher zu machen. Wenn Sie beispielsweise den Mauszeiger auf eine Operation bewegen, wird links in der Benutzeroberfläche ein Bereich angezeigt, in dem angegeben ist, wie oft diese Operation während der Profildauer ausgeführt wurde und wie lang die durchschnittliche Ausführungszeit war. Außerdem werden verschiedene Werte für Auslastung und Bandbreite berechnet und angezeigt. Dabei wird die statische Kostenanalyse von XLA für FLOPS und verbrauchte Bytes verwendet, um eine Rate basierend auf der gemessenen Ausführungszeit zu berechnen.