Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erkunden Sie die in der Profiler-Benutzeroberfläche visualisierten Profilausgabedaten SageMaker
In diesem Abschnitt wird die SageMaker Profiler-Benutzeroberfläche vorgestellt und es werden Tipps gegeben, wie Sie sie nutzen und Erkenntnisse daraus gewinnen können.
Profil laden
Wenn Sie die SageMaker Profiler-Benutzeroberfläche öffnen, wird die Seite Profil laden geöffnet. Gehen Sie wie folgt vor, um das Dashboard und den Zeitrahmen zu laden und zu generieren.
Zum Laden des Profils eines Trainingsauftrags
-
Wählen Sie im Bereich Liste der Trainingsaufträge mit dem Kontrollkästchen den Trainingsauftrag aus, für den Sie das Profil laden möchten.
-
Wählen Sie Laden aus. Der Name des Auftrags sollte oben im Abschnitt Geladenes Profil angezeigt werden.
-
Wählen Sie das Optionsfeld links neben Name des Auftrags, um das Dashboard und den Zeitrahmen zu generieren. Beachten Sie, dass die Benutzeroberfläche das Dashboard automatisch öffnet, wenn Sie das Optionsfeld auswählen. Beachten Sie außerdem, dass die SageMaker Profiler-Benutzeroberfläche Dashboard-Diagramme und eine Zeitleiste mit den neuesten Profildaten generiert, die aus dem laufenden Schulungsjob oder den teilweise geladenen Profildaten stammen, wenn Sie die Visualisierungen generieren, während der Jobstatus und der Ladestatus noch in Bearbeitung zu sein scheinen.
Tipp
Sie können jeweils ein Profil laden und visualisieren. Um ein anderes Profil zu laden, müssen Sie zuerst das zuvor geladene Profil entladen. Verwenden Sie das Papierkorbsymbol am rechten Ende des Profils im Abschnitt Geladenes Profil, um ein Profil zu entladen.
Dashboard
Wenn Sie den Trainingsauftrag geladen und ausgewählt haben, öffnet die Benutzeroberfläche die Dashboard-Seite, die standardmäßig mit den folgenden Bereichen ausgestattet ist.
-
GPUaktive Zeit — Dieses Kreisdiagramm zeigt den Prozentsatz der GPU aktiven Zeit im Vergleich zur GPU Leerlaufzeit. Sie können überprüfen, ob GPUs Sie während des gesamten Trainingsjobs eher aktiv als untätig sind. GPUDie aktive Zeit basiert auf den Profildatenpunkten mit einer Nutzungsrate von mehr als 0%, wohingegen die GPU Leerlaufzeit auf den profilierten Datenpunkten mit einer Auslastung von 0% basiert.
-
GPUAuslastung im Zeitverlauf — Dieses Zeitdiagramm zeigt die durchschnittliche GPU Nutzungsrate pro Knoten im Zeitverlauf und fasst alle Knoten in einem einzigen Diagramm zusammen. Sie können überprüfen, ob sie in bestimmten GPUs Zeitintervallen eine unausgewogene Arbeitslast, Probleme mit unzureichender Auslastung, Engpässe oder Probleme im Leerlauf haben. Um die Auslastungsrate auf der einzelnen GPU Ebene und die zugehörigen Kernelausführungen zu verfolgen, verwenden Sie den. Zeitrahmen-Schnittstelle Beachten Sie, dass die Erfassung der GPU Aktivitäten an der Stelle beginnt, an der Sie die Profiler-Startfunktion
SMProf.start_profiling()
in Ihrem Trainingsskript hinzugefügt haben, und dort endetSMProf.stop_profiling()
. -
CPUaktive Zeit — Dieses Kreisdiagramm zeigt den Prozentsatz der CPU aktiven Zeit im Vergleich zur CPU Leerlaufzeit. Sie können überprüfen, ob CPUs Sie während des gesamten Trainingsjobs eher aktiv als untätig sind. CPUDie aktive Zeit basiert auf den profilierten Datenpunkten mit einer Nutzungsrate von mehr als 0%, wohingegen die CPU Leerlaufzeit auf den profilierten Datenpunkten mit einer Auslastung von 0% basiert.
-
CPUAuslastung im Zeitverlauf — Dieses Zeitdiagramm zeigt die durchschnittliche CPU Nutzungsrate pro Knoten im Zeitverlauf und fasst alle Knoten in einem einzigen Diagramm zusammen. Sie können überprüfen, ob sie in bestimmten CPUs Zeitintervallen Engpässe oder unzureichend ausgelastet sind. Um die Auslastungsrate der auf die individuelle GPU Auslastung und den Kernel CPUs abgestimmten Läufe zu verfolgen, verwenden Sie den. Zeitrahmen-Schnittstelle Beachten Sie, dass die Nutzungskennzahlen mit der Initialisierung eines Auftrag beginnen.
-
Von allen GPU Kerneln aufgewendete Zeit — Dieses Kreisdiagramm zeigt alle GPU Kernel, die während des gesamten Trainingsjobs verwendet wurden. Es zeigt standardmäßig die 15 wichtigsten GPU Kernel als einzelne Sektoren und alle anderen Kernel in einem Sektor. Bewegen Sie den Mauszeiger über die Sektoren, um detailliertere Informationen zu erhalten. Der Wert gibt die Gesamtzeit der verwendeten GPU Kernel in Sekunden an, und der Prozentsatz basiert auf der gesamten Zeit des Profils.
-
Zeit, die die 15 wichtigsten GPU Kernel aufgewendet haben — Dieses Kreisdiagramm zeigt alle GPU Kernel, die während des gesamten Trainingsjobs verwendet wurden. Es zeigt die 15 wichtigsten GPU Kernel als einzelne Sektoren. Bewegen Sie den Mauszeiger über die Sektoren, um detailliertere Informationen zu erhalten. Der Wert gibt die Gesamtzeit der verwendeten GPU Kernel in Sekunden an, und der Prozentsatz basiert auf der gesamten Zeit des Profils.
-
Anzahl der Starts aller GPU Kernel — Dieses Kreisdiagramm zeigt die Anzahl der Starts für jeden GPU Kernel, der während des Trainingsjobs gestartet wurde. Es zeigt die 15 wichtigsten GPU Kernel als einzelne Sektoren und alle anderen Kernel in einem Sektor. Bewegen Sie den Mauszeiger über die Sektoren, um detailliertere Informationen zu erhalten. Der Wert zeigt die Gesamtzahl der gestarteten GPU Kernel an, und der Prozentsatz basiert auf der Gesamtzahl aller Kernel.
-
Anzahl der Starts der 15 wichtigsten GPU Kernel — Dieses Kreisdiagramm zeigt die Anzahl der während des Trainingsjobs gestarteten GPU Kernel. Es zeigt die 15 wichtigsten GPU Kernel. Bewegen Sie den Mauszeiger über die Sektoren, um detailliertere Informationen zu erhalten. Der Wert zeigt die Gesamtzahl der gestarteten GPU Kernel an, und der Prozentsatz basiert auf der Gesamtzahl aller Kernel.
-
Verteilung der Schrittzeiten — Dieses Histogramm zeigt die Verteilung der Schrittdauer am. GPUs Dieses Diagramm wird erst generiert, wenn Sie den Step-Kommentator zu Ihrem Trainingsskript hinzugefügt haben.
-
Verteilung der Kernel-Präzision — Dieses Kreisdiagramm zeigt den Prozentsatz der Zeit, die für die Ausführung von Kerneln in verschiedenen Datentypen wieFP32,FP16, INT32 und aufgewendet wurde. INT8
-
GPUAktivitätsverteilung — Dieses Kreisdiagramm zeigt den Prozentsatz der Zeit, die für GPU Aktivitäten wie das Ausführen von Kerneln, Arbeitsspeicher (
memcpy
undmemset
) und Synchronisation (sync
) aufgewendet wurde. -
GPUVerteilung der Speicheroperationen — Dieses Kreisdiagramm zeigt den Prozentsatz der Zeit, die für GPU Speicheroperationen aufgewendet wurde. Damit werden die
memcopy
Aktivitäten visualisiert. Sie können so erkennen, ob Ihr Trainingsauftrag zu viel Zeit mit bestimmten Speicheroperationen verbringt. -
Neues Histogramm erstellen – Erstellen Sie ein neues Diagramm einer benutzerdefinierten Kennzahl, die Sie während Schritt 1: Passen Sie Ihr Trainingsskript mit den SageMaker Profiler-Python-Modulen an manuell kommentiert haben. Wenn Sie zu einem neuen Histogramm eine benutzerdefinierte Anmerkung hinzufügen, wählen Sie den Namen der Anmerkung aus, die Sie im Trainingsskript hinzugefügt haben, oder geben Sie ihn ein. In Schritt 1 Im Demo-Trainingsskript sind z. B.
step
,Forward
,Backward
,Optimize
undLoss
benutzerdefinierte Anmerkungen. Beim Erstellen eines neuen Histogramms sollten diese Namen der Anmerkungen im Dropdownmenü für die Metrikauswahl angezeigt werden. Wenn SieBackward
auswählen, fügt die Benutzeroberfläche zum Dashboard das Histogramm der Zeit hinzu, die während der gesamten Profildauer für Rückwärtsläufe aufgewendet wurde. Solche Histogramme sind nützlich, um zu überprüfen, ob es Ausreißer gibt, die ungewöhnlich viel Zeit in Anspruch nehmen und Engpässe verursachen.
Die folgenden Screenshots zeigen das GPU Verhältnis zur CPU aktiven Zeit sowie den Durchschnitt GPU und die CPU Nutzungsrate in Bezug auf die Zeit pro Rechenknoten.
Der folgende Screenshot zeigt ein Beispiel für Kreisdiagramme, mit denen verglichen werden kann, wie oft die GPU Kernel gestartet wurden, und um zu messen, wie viel Zeit für ihre Ausführung aufgewendet wurde. In den Bedienfeldern Zeit aller GPU Kernel und Anzahl der Starts aller GPU Kernel können Sie auch eine Ganzzahl in das Eingabefeld für k angeben, um die Anzahl der Legenden anzupassen, die in den Diagrammen angezeigt werden sollen. Wenn Sie z. B. 10 angeben, zeigen die Diagramme jeweils die zehn am häufigsten ausgeführten bzw. gestarteten Kernel.
Der folgende Screenshot zeigt ein Beispiel für ein Histogramm zur Schrittzeitdauer und für Kreisdiagramme für die Kernel-Präzisionsverteilung, die GPU Aktivitätsverteilung und die Verteilung der GPU Speicheroperationen.
Zeitrahmen-Schnittstelle
Verwenden Sie die Timeline-Oberfläche, um einen detaillierten Überblick über die Rechenressourcen auf der Ebene der Operationen und Kernel zu erhaltenGPUs, die auf dem geplant sind CPUs und auf dem ausgeführt werden.
Sie können die Zeitrahmen-Oberfläche mit der Maus, den Tasten oder den vier [w, a, s, d]
Pfeiltasten auf der Tastatur vergrößern und verkleinern und nach links oder rechts schwenken.
Tipp
Weitere Tipps zu den Tastenkombinationen für die Interaktion mit der Zeitrahmen-Oberfläche erhalten Sie, wenn Sie im linken Bereich Tastenkombinationen auswählen.
Die Zeitrahmen-Spuren sind in einer Baumstruktur angeordnet, so dass Sie Informationen von der Host-Ebene bis zur Geräteebene erhalten. Wenn Sie beispielsweise N
Instanzen mit jeweils acht GPUs Instanzen ausführen, sieht die Timeline-Struktur jeder Instanz wie folgt aus.
-
algo-i node — Mit diesen SageMaker Tags können Sie bereitgestellten Instanzen Jobs zuweisen. Die Ziffer inode wird nach dem Zufallsprinzip zugewiesen. Wenn Sie z. B. 4 Instances verwenden, wird dieser Abschnitt von algo-1 bis algo-4 erweitert.
-
CPU— In diesem Abschnitt können Sie die durchschnittliche CPU Nutzungsrate und die Leistungsindikatoren überprüfen.
-
GPUs— In diesem Abschnitt können Sie die durchschnittliche GPU Nutzungsrate, die individuelle GPU Nutzungsrate und die Kernel überprüfen.
-
SUMAuslastung — Die durchschnittlichen GPU Nutzungsraten pro Instance.
-
HOST-0 PID -123 — Jeder Prozessspur wird ein eindeutiger Name zugewiesen. Das Akronym PID ist die Prozess-ID, und die daran angehängte Nummer ist die Prozess-ID-Nummer, die bei der Datenerfassung aus dem Prozess aufgezeichnet wird. Dieser Abschnitt enthält die folgenden Informationen aus dem Prozess.
-
GPUnum_gpu-i-Nutzung — Die Nutzungsrate des i-ten im Laufe der num_gpu Zeit. GPU
-
GPU-i num_gpu device — Der Kernel läuft auf dem num_gpu i-ten Gerät. GPU
-
stream i cuda_stream — CUDA Streams, die zeigen, dass der Kernel auf dem GPU Gerät läuft. Weitere Informationen zu CUDA Streams finden Sie auf den Folien PDF unter CUDAC/C++ Streams and Concurrency
, bereitgestellt von. NVIDIA
-
-
GPU-i num_gpu host — Der Kernel wird auf dem num_gpu i-ten Host gestartet. GPU
-
-
-
Die folgenden Screenshots zeigen die Zeitleiste des Profils eines Trainingsjobs, der auf ml.p4d.24xlarge
Instanzen ausgeführt wird, die jeweils mit 8 NVIDIA A100 Tensor Core ausgestattet sind. GPUs
Im Folgenden finden Sie eine herausgezoomte Ansicht des Profils, in der ein Dutzend Schritte gedruckt wurden, darunter ein intermittierender Datenlader zwischen step_232
und step_233
zum Abrufen des nächsten Datenstapels.
Für jeden CPU können Sie die CPU Auslastungs- und Leistungsindikatoren verfolgen, z. B. "clk_unhalted_ref.tsc"
und, die auf Anweisungen hinweisen"itlb_misses.miss_causes_a_walk"
, die auf dem ausgeführt werden. CPU
Für jeden GPU können Sie eine Host-Zeitleiste und eine Geräte-Timeline sehen. Kernel-Starts befinden sich auf dem Host-Zeitrahmen und Kernel-Läufe auf dem Geräte-Zeitrahmen. Du kannst dir auch Anmerkungen (wie „Vorwärts“, „Rückwärts“ und „Optimieren“) ansehen, wenn du in der GPU Host-Timeline ein Trainingsskript hinzugefügt hast.
In der Timeline-Ansicht können Sie auch launch-and-run Kernel-Paare verfolgen. Dies hilft Ihnen zu verstehen, wie ein auf einem Host (CPU) geplanter Kernel-Start auf dem entsprechenden GPU Gerät ausgeführt wird.
Tipp
Drücken Sie die Taste f
, um den ausgewählten Kernel zu vergrößern.
Der folgende Screenshot ist eine hereingezoomte Ansicht von step_233
und step_234
aus dem vorangehenden Screenshot. Das im folgenden Screenshot gewählte Zeitintervall ist der AllReduce
Vorgang, ein wesentlicher Kommunikations- und Synchronisationsschritt im verteilten Training, der auf dem GPU -0 Gerät ausgeführt wird. Beachten Sie in der Abbildung, dass der Kernelstart auf dem Host GPU -0 eine Verbindung zum Kernel-Lauf im GPU -0 Geräte-Stream 1 herstellt, was durch den cyanfarbenen Pfeil gekennzeichnet ist.
Außerdem werden im unteren Bereich der Benutzeroberfläche zwei Registerkarten mit Informationen angezeigt, wenn Sie ein Zeitrahmenintervall auswählen, wie im letzten Screenshot gezeigt. Auf der Registerkarte Aktuelle Auswahl werden die Details zum ausgewählten Kernel und zum Start des verbundenen Kernels vom Host aus angezeigt. Die Verbindungsrichtung ist immer von host (CPU) zu device (GPU), da jeder GPU Kernel immer von a CPU aufgerufen wird. Auf der Registerkarte Verbindungen wird das ausgewählte Paar aus Start und Ausführung des Kernels angezeigt. Sie können eine davon auswählen, um sie in die Mitte der Zeitrahmen-Ansicht zu verschieben.
Im folgenden Screenshot wird das Paar AllReduce
Operation starten und Ausführen weiter herangezoomt.
Informationen
Unter Information können Sie auf Informationen über den geladenen Trainingsjob zugreifen, z. B. den Instance-Typ, Amazon-Ressourcennamen (ARNs) der für den Job bereitgestellten Rechenressourcen, Knotennamen und Hyperparameter.
Einstellungen
Die SageMaker Profiler UI-Anwendungsinstanz ist standardmäßig so konfiguriert, dass sie nach 2 Stunden Leerlauf heruntergefahren wird. Mit Hilfe der folgenden Einstellungen können Sie den Timer für automatisches Herunterfahren einstellen.
-
Automatisches Herunterfahren der App aktivieren – Wählen Sie diese Option aus und stellen Sie sie auf Aktiviert, damit die Anwendung nach der angegebenen Zeit (in Stunden) im Leerlauf automatisch heruntergefahren wird. Um die Funktion „Automatisch Herunterfahren“ auszuschalten, wählen Sie Deaktiviert aus.
-
Schwellenwert für automatisches Herunterfahren in Stunden – Wenn Sie unter Automatisches Herunterfahren der App aktivieren die Option Aktiviert auswählen, können Sie den Schwellenwert für die Zeit (in Stunden) festlegen, bevor die Anwendung automatisch heruntergefahren wird. Die Standardeinstellung ist 2.