Profil für Ihr Modell auf Cloud TPU-VMs erstellen

Durch die Profilerstellung können Sie die Trainingsleistung Ihres Modells auf Cloud TPUs optimieren. Sie verwenden TensorBoard und den Cloud TPU TensorBoard-Plug-in zum Erstellen von Profilen für Ihr Modell.

Weitere Informationen zur Verwendung von TensorBoard mit einem der unterstützten Frameworks, finden Sie in den folgenden Dokumenten:

Voraussetzungen für die Profilerstellung für ein Trainingsskript

Bevor Sie die TPU-Tools zur Profilerstellung verwenden, müssen Sie Folgendes tun:

  1. Modelltraining starten

    1. v4-8 TPU einrichten um ein Modell zu trainieren. Das in diesem Dokument beschriebene Verfahren zur Profilerstellung verwendet ein ResNet-Modell. Sie können aber auch ein anderes Modell verwenden, sofern es trainiert wird. auf einer v4-TPU.
    2. Fügen Sie in der TPU-VM eine Zeile zum Starten des Profiler-Servers hinzu. mit dem Trainingsskript.

      Für das ResNET-Training befindet sich das Trainingsskript unter: /usr/share/tpu/tensorflow/resnet50_keras/resnet50.py

      Fügen Sie die markierten Zeilen in resnet50.py ein. Fügen Sie oben in der Datei den folgenden Import hinzu:

      import tensorflow.compat.v2 as tf2
      

      Fügen Sie direkt vor Beginn der Trainingsschleife den Parameter hervorgehobene Zeile:

      if name == 'main':
       tf.logging.set_verbosity(tf.logging.INFO)
       tf2.profiler.experimental.server.start(6000)
       app.run(main)
      

      Der TensorFlow-Profiler-Server startet auf Ihrer TPU-VM, wenn Sie führen Sie das Skript aus.

    3. Starten Sie das Modelltraining.

      Führen Sie das Trainingsskript aus und warten Sie, bis die Ausgabe Ihr Modell aktiv trainiert. Die Ausgabe hängt davon ab, auf Ihren Code und Ihr Modell. Suchen Sie nach Ausgaben wie Epoch 1/100. Alternativ können Sie die Cloud TPU-Seite aufrufen in der Google Cloud Console TPU und rufen Sie das CPU-Auslastungsdiagramm auf. Während nicht die TPU-Auslastung, sondern ein guter Hinweis darauf, dass die TPU Ihr Modell trainiert.

Profilerstellung für Modelltraining starten

Öffnen Sie während des Trainings des Modells ein separates Terminalfenster oder Cloud Shell. Führen Sie die folgenden Schritte aus, um ein Profil für das Modelltraining zu erstellen.

  1. Stellen Sie im neuen Fenster oder in der Shell eine Verbindung zur TPU-VM mit Portweiterleitung her.

    gcloud compute tpus tpu-vm ssh your-vm --zone=us-central2-b --ssh-flag="-4 -L 9001:localhost:9001"
    

    Über die Portweiterleitung kann der lokale Browser mit TensorBoard kommunizieren auf der TPU-VM ausgeführt wird.

  2. TensorFlow-Anforderungen installieren {: id="install-tensorboard"}.

    Auf Ihrer TPU-VM ist TensorBoard standardmäßig installiert. Ich können Sie TensorFlow auch manuell installieren. In beiden Fällen können zusätzliche Abhängigkeiten erforderlich sein. Installieren auf der TPU-VM. Dazu führen Sie Folgendes aus:

    pip3 install -r /usr/share/tpu/models/official/requirements.txt
    
  3. Installieren Sie das Cloud TPU TensorBoard-Plug-in {: id="install-plugin"}.

    Führen Sie auf der TPU-VM die folgenden Befehle aus:

     pip3 install --upgrade "cloud-tpu-profiler>=2.3.0"
     pip3 install tensorflow
     pip3 install tensorboard_plugin_profile
    
  4. TensorBoard-Server starten

    TensorBoard ausführen und ein Logverzeichnis erstellen (logdir) auf der TPU-VM, auf der TensorBoard Profildaten schreiben kann. Geben Sie die Logverzeichnis mit dem Flag --logdir. Beispiel:

    mkdir log-directory
    TPU_LOAD_LIBRARY=0 tensorboard --logdir log-directory --port 9001
    

TensorBoard startet einen Webserver und zeigt dessen URL an:

Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.3.0 at http://localhost:9001 (Press CTRL+C to quit)

Öffnen Sie einen Webbrowser und rufen Sie die in der TensorBoard-Ausgabe angezeigte URL auf. Auswählen Profile (Profil) aus. Die Liste der verfügbaren Profilerstellungstools wird im Drop-down-Menü Tools angezeigt. in der linken Seitenleiste.

Image

Profil auf TPU-VMs erstellen

  1. Wähle die Schaltfläche PROFIL ERFASSEN aus.
  2. Wählen Sie das Optionsfeld IP-Adresse aus.
  3. Geben Sie HOSTNAME:6000 in das Feld Profile Service URL ein.
  4. Wähle die Schaltfläche Capture (Aufnehmen) aus.

Image

Profildaten mit TensorBoard abrufen

Nachdem Sie ein Profil erfasst haben, zeigt TensorBoard die overview_page an. Die Liste der Profilerstellungstools, die Sie verwenden können, wird im linken Bereich angezeigt.

Image

Profil

Der Tab Profil wird angezeigt, nachdem Sie einige Modelldaten erfasst haben. Ich müssen Sie möglicherweise auf die Schaltfläche zum Aktualisieren TensorBoard-Seite. Sobald die Daten verfügbar sind, klicken Sie auf den Tab Profil. stellt eine Auswahl von Tools zur Leistungsanalyse vor. Sie können Verwenden Sie eines der folgenden Tools, um ein Profil für Ihr Modell zu erstellen.

Profilübersicht

Die Übersichtsseite (overview_page), die auf der Seite Profil verfügbar ist, enthält eine Top-Level-Ansicht der Leistung Ihres Modells während einer Erfassungsausführung. Die Seite zeigt eine aggregierte Übersicht über alle Ihre TPUs sowie Eingabe-Pipeline-Analyse. Es gibt eine Option zum Auswählen einzelner TPUs im Drop-down-Menü Host aus.

Auf der Seite werden Daten in den folgenden Bereichen angezeigt:

Bild

  • Performance Summary (Leistungsübersicht)

    • FLOPS-Auslastung – Die anteilige Auslastung der TPU-Matrixeinheiten
  • Top Ten TensorFlow Operations on TPU Zeigt die TensorFlow-Vorgänge, die am meisten Zeit in Anspruch genommen haben:

    Jede Zeile zeigt die Eigenzeit eines Vorgangs als Prozentsatz der nach allen Vorgängen), kumulative Zeit, Kategorie, Name und FLOPS-Rate erreicht haben.

  • Run environment (Umgebung ausführen)

    • Die Anzahl der verwendeten Hosts
    • Der verwendete TPU-Typ
    • Die Anzahl der TPU-Kerne

Input Pipeline Analyzer

Der Input Pipeline Analyzer bietet Einblicke in Ihre Leistungsergebnisse. Das Tool teilt Ihnen sofort mit, ob Ihr Programm eingabegebunden ist und eine geräte- und hostseitige Analyse durchführen, um Fehler in allen Phasen des führt die Pipeline zu Engpässen.

Weitere Informationen zur Optimierung der Pipeline-Leistung finden Sie in den Anleitungen zur Eingabepipeline-Leistung.

Eingabepipeline

Wenn ein TensorFlow-Programm Daten aus einer Datei liest, unterteilt in in einer Reihe zusammenhängende Datenverarbeitungsphasen. Die Ausgabe von einem Phase ist die Eingabe für die nächste. Dieses Lesesystem wird als Eingabepipeline bezeichnet.

Eine typische Pipeline zum Lesen von Datensätzen aus Dateien gliedert sich in folgende Phasen:

  1. Datei lesen
  2. Datei vorverarbeiten (optional)
  3. Dateiübertragung vom Hostcomputer zum Gerät

Eine ineffiziente Eingabe-Pipeline kann Ihre Anwendung stark verlangsamen. Eine Anwendung, die einen erheblichen Teil der Zeit in der Eingabe-Pipeline verbringt, wird als eingabegebunden bezeichnet. Verwenden Sie den Input Pipeline Analyzer, um mehr wo die Eingabepipeline ineffizient ist.

Eingabepipeline-Dashboard

Zum Öffnen des Input Pipeline Analyzers wählen Sie Profile (Profil) und dann input_pipeline_analyzer aus dem Drop-down-Menü Tools.

Im Dashboard werden geräte- und hostseitige Analysedetails angezeigt.

Geräteseitige Analyse: Zeigt Details zu den Schrittzeiten des Geräts an.

  • Statistiken zur Geräteschrittzeit
  • % der Geräteschrittzeit mit Warten auf Eingabedaten

Hostseitige Analyse

In diesem Abschnitt werden die Details der hostseitigen Analyse in mehrere Kategorien unterteilt:

  • An Gerät zu übertragende Daten in Warteschlange stellen. Zeit, die aufgewendet wird, um die Daten in eine Einspeisewarteschlange zu stellen, bevor sie an das Gerät übertragen werden.
  • Datenvorverarbeitung: Zeit, die für Vorverarbeitungsvorgänge wie Bilder aufgewendet wird Dekomprimierung.
  • Daten im Voraus aus Dateien lesen Zeitaufwand für das Lesen von Dateien, einschließlich Caching, Prefetching und Verschränkung.
  • Daten bei Bedarf aus Dateien lesen Zeitaufwand für das Lesen ohne Caching, Prefetching und Verschränkung aus Dateien.
  • Andere Daten lesen oder verarbeiten Zeitaufwand für andere eingabebezogene Vorgänge ohne tf.data.

Image

Um die Statistiken für einzelne Eingabevorgänge und deren Kategorien anzuzeigen nach Ausführungszeit aufgeschlüsselt haben, maximieren Sie den Bereich Show Input Op statistics.

Es wird eine Quelldatentabelle wie die folgende angezeigt:

Bild

Jeder Tabelleneintrag enthält folgende Informationen:

  1. Eingabevorgang: Zeigt den TensorFlow-Vorgangsnamen des Eingabevorgangs an.
  2. Anzahl: Zeigt die Gesamtzahl der ausgeführten Vorgänge des Vorgangs an. während der Profilerstellung.
  3. Gesamtzeit (in ms): Zeigt die kumulative Summe der für jede die Vorgangsinstanzen.
  4. Gesamtzeit in %: Zeigt die für einen Vorgang aufgewendete Gesamtzeit als Anteil von die Gesamtzeit, die für die Eingabeverarbeitung aufgewendet wurde.
  5. Gesamte Eigenzeit (in ms): Zeigt die kumulierte Zeit an. für alle Instanzen der Funktion. Die Selbstzeit misst, wie viel Zeit innerhalb des Funktionskörpers, mit Ausnahme der Zeit, die für alle aufgerufenen Funktionen benötigt wurde. Zum Beispiel ist Iterator::PaddedBatch::Filter::ForeverRepeat::Map von Iterator::PaddedBatch::Filter aufgerufen, daher ist die Summe von der gesamten Eigenzeit ausgeschlossen wird.
  6. Gesamte Eigenzeit %: Zeigt die gesamte Eigenzeit als Anteil der Gesamtzeit an. Zeit, die für die Eingabeverarbeitung aufgewendet wird.
  7. Kategorie: Zeigt die Verarbeitungskategorie des Eingabevorgangs an.

Op Profile

Op Profile ist ein Cloud TPU-Tool zur Anzeige der Leistungsstatistiken von XLA-Vorgängen, die während der Dauer der Profilerstellung ausgeführt wurden. Das Vorgangsprofil enthält Folgendes:

  • Wie gut Ihre Anwendung die Cloud TPU verwendet als Prozentsatz der Zeit, die für Vorgänge nach Kategorie und TPU-FLOPS-Auslastung aufgewendet wird
  • Vorgänge, die am zeitaufwendigsten waren. Diese Vorgänge sind potenzielle Ziele für die Optimierung.
  • Details zu einzelnen Vorgängen, einschließlich Form, Auffüllung und Ausdrücken, die den Vorgang verwenden.

Sie können Op Profile verwenden, um Ziele für die Optimierung zu finden. So können Sie zum Beispiel Verwenden Sie das Vorgangsprofil, um zu ermitteln, welche XLA-Vorgänge am längsten dauern, ausgeführt wird und wie viele TPU-FLOPS sie verbrauchen.

Op Profile verwenden

Das Op Profile-Tool enthält Leistungsstatistiken von XLA-Vorgängen. Sie können Op Profile-Daten in TensorBoard über den Tab Profil oben auf dem Bildschirm und wählen Sie dann im Menü Tools die Option op_profile aus. aus. Sie sehen eine Anzeige wie diese:

Image

  1. Übersichtsbereich: Zeigt die Cloud TPU-Auslastung und bietet Optimierungsvorschläge.
  2. Steuerfeld Enthält Steuerelemente, mit denen Sie die Anzahl der Vorgänge, die in der Tabelle angezeigt werden, welche Vorgänge angezeigt werden und wie sortiert werden.
  3. Vorgangstabelle: Listet den wichtigsten TensorFlow-Vorgang auf. Kategorien, die mit den XLA-Operationen verknüpft sind. Diese Vorgänge werden nach Prozentsatz der Cloud TPU-Nutzung sortiert.
  4. Karten mit Vorgangsdetails Zeigt Details zu den Vorgängen an die angezeigt werden, wenn Sie auf einen Vorgang in der Tabelle zeigen. Zu diesen Details gehören die FLOPS-Auslastung, den Ausdruck, in dem der Vorgang verwendet wird, und das Vorgangslayout (Anpassung).

XLA-Vorgangstabelle

In der Vorgangstabelle sind die XLA-Vorgangskategorien von der höchsten zur niedrigsten Liste aufgeführt. Prozentsatz der Cloud TPU-Nutzung. Die Tabelle zeigt die der benötigten Zeit, den Namen der Vorgangskategorie, zugehöriger TensorFlow-Vorgang und den Prozentsatz der FLOPS-Auslastung für die Kategorie. Zum Anzeigen die zehn zeitaufwendigsten XLA-Vorgänge für eine Kategorie ausblenden oder ausblenden, Dreieck neben dem Kategorienamen in der Tabelle.

Image

  1. Zeit: Gibt die Gesamtzeit in Prozent an, die von allen Operationen in dieser Kategorie. Sie können auf einen Eintrag klicken, um ihn zu maximieren und die Aufschlüsselung der beanspruchten Zeit nach den einzelnen Vorgängen anzuzeigen.
  2. Die zehn wichtigsten Vorgänge: Mit der Ein/Aus-Schaltfläche neben einem Kategorienamen können Sie diese ein- oder ausblenden. oben zehn zeitaufwendige Vorgänge innerhalb der Kategorie. Wenn bei einem Fusionsvorgang angezeigt wird, können Sie die Liste erweitern, nicht-fusionsbasierten, elementweisen Operationen.
  3. TensorFlow Op zeigt den TensorFlow-Vorgangsnamen an. mit dem XLA-Vorgang verknüpft ist.
  4. FLOPS: Zeigt die FLOPS-Auslastung an. Sie ist die gemessene Anzahl von FLOPS, ausgedrückt als Prozentsatz der maximalen FLOPS der Cloud TPU. Je höher der Prozentsatz der FLOPS-Auslastung ist, desto schneller werden die Vorgänge ausgeführt. Die Tabellenzelle ist farbcodiert: grün steht für hohe FLOPS-Auslastung (gut) und rot für niedrige FLOPS-Auslastung (schlecht).

Karten mit Vorgangsdetails

Wenn Sie einen Tabelleneintrag auswählen, wird eine Karte mit Details zum XLA-Vorgang oder zur Vorgangskategorie. Eine typische Karte sieht so aus:

Image

  • Name und Kategorie: Zeigt den hervorgehobenen XLA-Vorgangsnamen und die entsprechende Kategorie an.
  • FLOPS-Auslastung: Zeigt die FLOPS-Auslastung als Prozentsatz der Gesamtmenge an. FLOPS möglich.
  • Ausdruck: Zeigt die XLA-Datei an Ausdruck der den Vorgang enthält.
  • Arbeitsspeicherauslastung: Zeigt die Prozentzahl der Spitzenauslastung für .
  • Layout (nur Faltungsvorgänge) Zeigt die Form und das Layout eines Tensors, einschließlich Eine Beschreibung des vom XLA-Compiler ausgeführten Paddings.

Ergebnisse interpretieren

Bei Faltungsvorgängen kann eine niedrige TPU-FLOPS-Auslastung durch aus zwei Gründen:

  • Auffüllung (Matrixeinheiten werden teilweise verwendet)
  • Faltungsvorgang ist speichergebunden

In diesem Abschnitt werden einige Leistungsmesswerte eines Modells interpretiert. mit geringer FLOP-Auslastung. In diesem Beispiel werden output fusion und convolution die Ausführungszeit dominiert hat. Es gab viele Vektor- oder Skalarvorgänge, die FLOP-Auslastung gering war.

Eine Optimierungsstrategie für diesen Profiltyp besteht darin, die Vektor- oder Skalarvorgänge in Faltungsvorgänge umzuwandeln.

Im folgenden Beispiel zeigt %convolution.399 eine niedrigere FLOPS- und Speicherauslastung als %convolution.340 im vorherigen Beispiel.

Image

In diesem Beispiel wird die Batchgröße auf 128 aufgefüllt und Feature-Größe wird auf 8 aufgefüllt. In diesem Fall sind nur 5% der Matrix Einheiten effektiv eingesetzt werden. Die Auslastung wird so berechnet: ((batch_time * num_of_features) / Padding_size ) / Anzahl_der_Kerne. Vergleichen Sie die FLOPS in diesem Beispiel mit der %convolution.340 im vorherigen Beispiel. Beispiel ohne Abstand.

Trace Viewer

Trace Viewer ist ein Cloud TPU-Tool zur Leistungsanalyse auf der Profilseite. Das Tool verwendet den Chrome Trace Event Profiling Viewer, weshalb es nur im Chrome-Browser funktioniert.

Trace Viewer enthält eine Zeitachse mit folgenden Informationen:

  • Dauer für die Vorgänge, die von Ihrem TensorFlow-Modell ausgeführt wurden model.
  • Teil des Systems (TPU oder Hostcomputer), in dem ein Vorgang ausgeführt wurde. In der Regel führt der Hostcomputer Einspeisvorgänge aus, bei denen die Vorverarbeitung die Trainingsdaten an die TPU übertragen, während die TPU die für das tatsächliche Modelltraining.

Mit dem Trace Viewer können Sie Leistungsprobleme in Ihrem Modell identifizieren, dann um sie zu lösen. Auf übergeordneter Ebene können Sie beispielsweise ob das InFeed- oder Modelltraining die meiste Zeit in Anspruch nimmt. Bohrungen können Sie feststellen, welche TensorFlow-Operationen am längsten dauert.

Trace Viewer ist auf 1 Million Ereignisse pro Cloud TPU beschränkt. Wenn Wenn Sie weitere Ereignisse bewerten möchten, verwenden Sie den Streaming Trace Viewer. .

Trace Viewer-Oberfläche

Um den Trace Viewer zu öffnen, gehen Sie zu TensorBoard und klicken Sie auf den Tab Profil am und wählen Sie im Drop-down-Menü Tools die Option trace_viewer aus. Der Viewer zeigt Ihren letzten Durchlauf an:

Image

Dieser Bildschirm enthält die folgenden Hauptelemente (mit Zahlen im Feld vor dem Screenshot):

  1. Drop-down-Menü „Ausführungen“: Enthält alle Ausführungen, die Sie die Trace-Informationen erfasst. Die Standardansicht ist die neueste aber Sie können das Drop-down-Menü öffnen, um eine andere Ausführung auszuwählen.
  2. Drop-down-Menü "Tools": Wählt verschiedene Tools zur Profilerstellung aus.
  3. Drop-down-Menü für Host: Wählt einen Host aus, der eine Cloud TPU enthält. festgelegt.
  4. Zeitachsenbereich: Zeigt Vorgänge an, die Cloud TPU und die im Lauf der Zeit ausgeführt wird.
  5. Detailbereich mit zusätzlichen Informationen zu Vorgängen im Bereich „Zeitachse“ ausgewählt.

Eine genauere Ansicht des Zeitachsenbereichs:

Bild

Der Zeitachsenbereich setzt sich aus folgenden Elementen zusammen:

  1. Leiste am oberen Rand Enthält verschiedene zusätzliche Steuerelemente.
  2. Zeitachse: Zeigt die Zeit bezogen auf den Trace-Anfang an.
  3. Abschnitts- und Tracklabels Jeder Abschnitt enthält mehrere Tracks und ein Dreieck links, auf das Sie klicken können, um die . Jedes Verarbeitungselement im System ist durch einen Abschnitt vertreten.
  4. Toolauswahl Enthält verschiedene Tools für die Interaktion mit der Trace Viewer.
  5. Ereignisse: Zeigt an, wie lange ein Vorgang ausgeführt wurde. die Dauer von Meta-Ereignissen wie Trainingsschritten.
  6. Vertikale Tableiste: Diese Leiste hat für Cloud TPU keinen zweckdienlichen Zweck. Die Leiste ist Teil des Chrome-Trace-Viewers das für verschiedene Aufgaben zur Leistungsanalyse verwendet wird.

Abschnitte und Tracks

Trace Viewer enthält folgende Abschnitte:

  • Ein Abschnitt für jeden TPU-Knoten, der mit der Nummer des TPU-Chips gekennzeichnet ist und den TPU-Kern innerhalb des Chips (z. B. „Chip 2: TPU Core 1“). Jeder TPU-Knotenabschnitt enthält folgende Tracks:
    • Schritt: Zeigt die Dauer der Trainingsschritte an, die bisher auf der TPU ausgeführt wird.
    • TensorFlow Ops Zeigt TensorFlow-Vorgänge an, die auf der TPU ausgeführt werden.
    • XLA Ops: Zeigt XLA Vorgänge, die auf der TPU ausgeführt wurden. (Jeder Vorgang wird übersetzt in einen oder mehrere XLA-Vorgänge integriert. Der XLA-Compiler übersetzt die XLA-Vorgänge in Code, der auf der TPU ausgeführt wird.
  • Ein Abschnitt für Threads, die auf der Host-CPU ausgeführt werden, mit der Bezeichnung „Host Threads“. Dieser Abschnitt enthält einen Track für jeden CPU-Thread. Hinweis: Sie können die neben den Abschnittslabels angezeigten Informationen ignorieren.

Toolauswahl für die Zeitachse

Sie können über die Toolauswahl für die Zeitachse in TensorBoard mit der Zeitachsenansicht interagieren. Klicken Sie auf ein Zeitachsen-Tool, um ein Tool zu aktivieren und hervorzuheben. Sie können die Toolauswahl für die Zeitachse verschieben, wenn Sie oben in den gepunkteten Bereich klicken und die Auswahl an die gewünschte Stelle ziehen.

So verwenden Sie die Zeitachsentools:

Auswahl-Tool
Sie können auf ein Ereignis klicken, um es auszuwählen, oder durch Ziehen mehrere Ereignisse auswählen. Im Detailbereich werden daraufhin zusätzliche Informationen (Name, Startzeit und Dauer) zu den ausgewählten Ereignissen angezeigt.

Verschieben-Tool
Klicken und ziehen Sie, um die Zeitachsenansicht horizontal und vertikal zu verschieben.

Zoom-Tool
Klicken und ziehen Sie nach oben, um die horizontale Zeitachse heranzuzoomen, oder klicken und ziehen Sie nach unten, um herauszuzoomen. Die horizontale Position des Mauszeigers bestimmt den Mittelpunkt, um den herum gezoomt wird.

Hinweis:Wenn das Zoom-Tool aktiv bleibt, nachdem Sie die klicken Sie auf die Zeitachse, um das Zoom-Tool zu deaktivieren.

Zeitintervall-Tool
Klicken und ziehen Sie horizontal, um ein Zeitintervall zu markieren. Die Länge des Intervalls wird auf der Zeitachse angezeigt. Wenn Sie das Intervall anpassen möchten, ziehen Sie seine Enden. Zum Löschen des Intervalls klicken Sie auf eine beliebige Stelle in der Zeitachsenansicht.

Wenn Sie ein anderes Tool auswählen, bleibt das Intervall markiert.

Memory Viewer

Mit dem Memory Viewer können Sie die Trends der Spitzen- und Arbeitsspeichernutzung visualisieren für Ihr Programm.

Die Benutzeroberfläche des Memory Viewer sieht so aus:

Image

  1. Drop-down-Menü Host Wählt einen TPU-Host und ein XLA-High-Level-Optimierungstool aus. HLO-Module zu visualisieren.
  2. Arbeitsspeicherübersicht: Zeigt die maximale Arbeitsspeicherzuweisung und -größe ohne Auffüllung an.
  3. Arbeitsspeicherdiagramm: Zeigt die maximale Arbeitsspeichernutzung und ein Diagramm der Arbeitsspeichernutzung an für Ihr Programm zu erkennen. Auf einen Zwischenspeicher in einem Zwischenspeicher verweisen um zusätzliche Informationen auf der Pufferzuordnungskarte anzuzeigen.
  4. Zwischenspeicherdiagramme: Zwei Diagramme, in denen die Zwischenspeicherzuweisung bei Spitzenarbeitsspeichern angezeigt wird Nutzung. Bewegen Sie den Mauszeiger auf einen Zwischenspeicher in einem der Zwischenspeicherdiagramme, um weitere Zwischenspeicherdetails.
  5. Karte mit Details zur Zwischenspeicherzuweisung: Zeigt die Zuweisungsdetails für einen Zwischenspeicher an.

Speicherübersichtsbereich

Im Speicherübersichtsbereich werden der Modulname und die maximale Speicherzuordnung angezeigt, wenn die Gesamtgröße der Zwischenspeicherzuweisung das Maximum erreicht. Die nicht aufgefüllte Spitzenzuweisungsgröße wird ebenfalls zum Vergleich angezeigt.

Bild

Arbeitsspeicherdiagramm

Dieses Diagramm zeigt die maximale Speichernutzung und ein Diagramm der Trends bei der Arbeitsspeichernutzung für Ihr . Die vertikale Linie zeigt die maximale Arbeitsspeicherauslastung für das Programm an. Dieses Diagramme zeigen, ob Ihr Programm in den verfügbaren globalen Arbeitsspeicher passt.

Image

Jeder Punkt im Diagramm steht für einen „Programmpunkt“ im XLA HLO-Programm. Die zeigt an, wie sich die Speichernutzung Ihres Programms im Laufe der Zeit ändert.

Interaktion mit Zwischenspeicherdiagrammelementen

Wenn Sie in Abuffer-Diagrammen auf einen Zwischenspeicher zeigen, im Diagramm „Arbeitsspeicher“ mit der Lebensdauer des Zwischenspeichers.

Image

Die Stärke der horizontalen Linie gibt die relative Größe des Zwischenspeichers an. in Relation zur maximalen Arbeitsspeicherzuweisung. Die Linienlänge gibt die Lebensdauer des Zwischenspeichers.

Zwischenspeicherdiagramme

Zwei Diagramme zeigen die Aufschlüsselung der Arbeitsspeichernutzung bei Spitzenauslastung.

Image

  • By Program Order (Nach Programmreihenfolge) Zeigt die Puffer von links nach rechts in der angegebenen Reihenfolge an. die sie während der Programmausführung aktiv waren.

  • Nach Größe: Zeigt die Zwischenspeicher an, die während der Programmausführung aktiv waren. und zwar in absteigender Größe.

Detailkarte zur Zwischenspeicherzuordnung

Wenn Sie den Mauszeiger auf einen Zwischenspeicher bewegen, wird die Karte mit den Zuweisungsdetails angezeigt. Eine typische Karte sieht so aus:

Image

  1. Name: Name des XLA-Vorgangs.
  2. Kategorie: Die Vorgangskategorie.
  3. Größe: die Größe der Zwischenspeicherzuordnung (einschließlich Auffüllung).
  4. Größe ohne Auffüllung: Die Größe der Zwischenspeicherzuweisung ohne Auffüllung.
  5. Erweiterung – die relative Größe der Puffergröße mit Auffüllung im Vergleich zur Größe ohne Auffüllung Größe.
  6. Extra memory (Zusätzlicher Arbeitsspeicher): Gibt an, wie viel zusätzlicher Arbeitsspeicher für das Padding verwendet wird.
  7. Form: Beschreibt Rang, Größe und Datentyp der n-dimensionalen Darstellung. Array.
  8. TensorFlow op name: Zeigt den Namen des TensorFlow-Modells Vorgang verknüpft mit der Zwischenspeicherzuweisung.
  9. Allocation type (Zuordnungstyp): Gibt die Zwischenspeicherzuordnungskategorie an: Parameter, Ausgabe, Thread lokal und temporär (z. B. „buffer“) Zuordnung innerhalb einer Fusion).

Unzureichender Speicherplatz

Wenn beim Ausführen eines Modells die Fehlermeldung „Nicht genügend Arbeitsspeicher“ Fehler, beachten Sie die Richtlinien in dieser Dokument, um ein Profil zu erfassen. Warten, bis das Skript das Modell trainiert bevor Sie den Profiler starten. Anhand der Profilerstellung können Sie nachvollziehen, hat den Fehler verursacht.