Anzeigen eines Threads

Das Verständnis der Threadausführungsanzeige von GPUView ist wichtig, um zu sehen, wo Threads aktiv sind und wo sie videospezifische Funktionen ausführen.

Das folgende Diagramm ist ein Screenshot eines Bruchteils einer Millisekundenzeit, der nur die aktiven Threads zeigt, die sich über zwei Prozesse erstrecken – den Systemprozess und den GPUView-Leerlaufprozess. In dieser Ansicht werden drei Threads angezeigt.

Screenshot: GPUView-Leerlaufprozess mit aktiven Threads

Bei jedem Thread befindet sich der Name auf der linken Seite, und in einem grauen rechteckigen Bereich auf der rechten Seite werden die Ausführungsintervalle angezeigt. Dieser gesamte Bereich wird als Threadbereich bezeichnet.

Thread Name

Screenshot: Threadname mit ID, Modul und Funktion

In der roten Ellipse in der vorherigen Grafik wird die Thread-ID in den Klammern gefolgt von dem Modul und der Funktion angezeigt, die den Thread erzeugt haben. In diesem Fall dxgmms1.sys Thread 432 im Offset 0x37DC0. Wenn Symbole geladen werden, zeigt GPUView den symbolischen Namen anstelle der Offsetnummer an.

Threadausführungsbereich

Screenshot: Threadausführungsbereich in GPUView

Der Graubereich rechts neben dem Namen, der Threadausführungsbereich, stellt die Zeit dar, zu der ein Thread ausgeführt werden konnte. In diesem Fall wurde der Thread in diesem Zeitraum zweimal ausgeführt.

Threadausführungsintervall

Screenshot: Threadausführungsintervalle in GPUView

In diesem Fall stellen die weißen Rechtecke dar, wann der Thread tatsächlich ausgeführt wurde. Dieses Diagramm zeigt zwei Threadausführungsintervalle.

Detailtext

Screenshot: Detailtext über dem Threadausführungsbereich

Auf der rechten Seite direkt über dem Threadausführungsbereich finden Sie Details zur Ausführung des Threads. Die erste Zahl ist die Anzahl der Ausführungsintervalle in diesem Zeitraum. Die zweite Zahl mit der Bezeichnung iTime gibt die Zeitspanne an, für die DPCs in diesem Thread ausgeführt wurden. Das dritte Element ist die Gesamtzeit des Ausführungsintervalls, und das letzte Element ist der Prozentsatz der Viewportzeit, die der Thread ausgeführt hat.

Details zum Ausführungsintervall

Screenshot: Details zu einem Threadausführungsintervall

Hintergrundfarbe

GPUView-Farbcodes für die Hintergrundfarbe des Ausführungsintervalls, um die Prozessorbeziehung anzuzeigen. Im Fall des vorherigen Diagramms weist der Leerlaufprozess zwei Threads auf, was angibt, dass es sich um einen Dual-Core-Computer handelt. Einem Prozessor wurde die Farbe Weiß und der andere hellgrün zugewiesen. Wenn Threadwechsel auftreten, zeichnet GPUView den Hintergrund mit den Prozessorinformationen, die zeigen, dass der Systemthread beim Ausführen des Systemthreads auf dem ersten Prozessor ausgeführt wurde.

GPUView zeigt derzeit acht eindeutige Prozessorfarben an und unterstützt bis zu 32 eindeutige Prozessoren.

Thread-Priorität

Die Zahl, die zu Beginn jedes Ausführungsintervalls angezeigt wird, ist die Priorität des Threads.

Hardware- oder DPC-Unterbrechungen

Hardwareunterbrechungen oder Verzögerte Prozeduraufrufe können jederzeit in jedem Thread ausgeführt werden. GPUView zeigt diese Informationen als kreuzgestrichene Zeit im Ausführungsintervall an. Hardwareunterbrechungen werden in roten Kreuzschaffen und DPCs blau angezeigt.

Screenshot: Hardware- und DPC-Unterbrechungen in GPUView

Im vorherigen Diagramm wurde ein DPC auf dem ersten Kern im Leerlauf ausgeführt, und kurz danach kam es zu einer Hardwareunterbrechung am zweiten Leerlaufkern.

Profilerstellung für geschachtelte Ausführung

Bei einigen APIs zeigt GPUView die in bestimmten Funktionen aufgewendete Zeit an. Dies wird im Ausführungsintervall als geschachtelte Ausführung bezeichnet. Ein erheblicher Teil der Video kernelprotokolliert Ereignisse, die angeben, wenn der Thread eine bestimmte Routine eingegeben oder verlassen hat.

Screenshot: Profilerstellung für geschachtelte Ausführung in GPUView

Im vorherigen Diagramm zeigt der Pfeil nach links auf die Schachtelungsausführungszeit, die blau ist. Blau ist eine reservierte Farbe, die Videokerncode angibt. Der zweite Pfeil zeigt auf die geschachtelte Ausführungszeit, die rot ist. Rot ist als Kernelzeit des Videotreibers reserviert.

Stapellaufpunkte

Screenshot: Stapellaufpunkte unter Ausführungsintervallen.

Wenn das Stapellaufen für die Ablaufverfolgung aktiviert ist, zeigt GPUView sie als Punkte direkt unter dem Ausführungsintervall an. Im vorherigen Diagramm gibt es drei Stack Walk-Punkte für die beiden Intervalle.

Nichtausführungszeit

Wenn ein Thread innerhalb der Viewportzeit erstellt oder zerstört wird, zeigt GPUView die Nichtexistenz über eine horizontale Linie an. Im folgenden Diagramm wird die Startzeit des Viewports durch die vertikale Linie direkt rechts neben dem Threadnamen dargestellt. Die horizontale Linie, auf die durch den roten Pfeil zwischen dem Pfeil und dem Ausführungsbereich verwiesen wird, stellt die Zeit dar, in der der Thread nicht vorhanden war.

Screenshot: Nichtausführungszeit in GPUView