Was ist Thread? Beeinflusst es die Spielleistung?

Früher wurden Prozessoren nur mit Wörtern wie „Single Core und Dual Core“ beschrieben. Danach hörten wir häufig das Wort „Thread“ und zusätzlich zu 8 Kernen tauchten auf den technischen Spezifikationsseiten auch Ausdrücke wie „16 Threads“ auf.

Heutzutage werden Computer von Prozessoren angetrieben, die dank Fortschritten im Chip-Design und in der Herstellung mehrere Threads gleichzeitig verarbeiten können. Manche CPUs haben nur so viele Threads wie Kerne, andere haben doppelt so viele Threads. Was genau sind diese Threads also? Warum ist die Multiprozessfähigkeit von Prozessoren, dem Herzstück des Computers, so wertvoll?

Der Prozessor-Thread bezieht sich auf den kleinsten Befehlssatz, der zur Durchführung einer Informationsverarbeitungsmission erforderlich ist. Dies kann eine sehr kurze Liste sein, oder sie kann enorm lang sein.

Jetzt müssen wir eine neue Frage beantworten: Wie funktioniert der Prozess? Wenn Sie Windows auf Ihrem Computer ausführen, drücken Sie gleichzeitig die Tasten Windows und X und klicken Sie in der angezeigten Liste auf Mission Manager. Der Reiter „Transaktionen“ erscheint direkt vor Ihnen.

Hier sehen wir eine Liste der Prozesse, die derzeit im System ausgeführt werden. Einige der in der Liste aufgeführten Anwendungen führen wir selbst aus, während andere unabhängig vom System unabhängig vom Benutzer ausgeführt werden. Einige der auf dem Computer geöffneten Anwendungen können auch zusätzliche Hintergrundprozesse erzeugen. Mit anderen Worten handelt es sich um einige Aufgaben, die je nach Hauptprogramm hinter den Kulissen ablaufen.

Wenn Sie im Task-Manager zur Registerkarte „Leistung“ gehen und den Abschnitt „CPU“ auswählen, können Sie auf der angezeigten Seite sehen, wie viele Prozesse derzeit ausgeführt werden und wie viele aktive Threads insgesamt aktiv sind.

Der im Abschnitt „Identifikatoren“ angezeigte Wert bezieht sich immer auf die Anzahl der laufenden Dokumentprozesse. Jedes Mal, wenn ein Prozess auf ein Dokument im RAM oder auf einem Speicherlaufwerk zugreifen möchte, wird eine Dokumentkennung erstellt. Jeder einzelne ist spezifisch für den Prozess, der ihn erstellt hat, sodass ein Dokument tatsächlich mehrere Identifikatoren haben kann.

Zurück zu den Threads: Mission Manager liefert nicht viele Informationen zu dieser Wette. Beispielsweise wird die Anzahl der Threads, die jedem Prozess zugeordnet sind, nicht angezeigt. Aber Microsoft hat ein anderes Programm namens Process Explorer, das weitere Details liefert.

Hier können wir die Gesamtansicht verschiedener Prozesse und Threads viel detaillierter sehen. Wenn Sie die Benutzeroberfläche anpassen möchten, können Sie mit der rechten Maustaste auf den Teil klicken, in dem sich Rezepte wie Prozess, CPU und Threads befinden, und auf „Spalten auswählen“ klicken. Einige Programme können eine relativ kleine Anzahl von Skripten generieren, während einige Missionen, wie z. B. Anwendungen, die Systemprozesse verwalten, eine große Anzahl von Skripten generieren können.

Von Zeit zu Zeit beschweren sich Benutzer darüber, dass Hardware wie Prozessor, RAM und Festplatte zu stark beansprucht werden. In solchen Fällen kann es zu Leistungsproblemen kommen. Tatsächlich können einige Systemaufgaben und Software hohe Ressourcen verbrauchen und gleichzeitig eine große Anzahl von Prozessen erfordern. Jede im Hintergrund laufende Aufgabe stellt eine zusätzliche Belastung für die angeschlossene Hardware dar.

Arbeitslogik

Das ultimative Ziel für jeden Thread ist die zentrale Prozesseinheit (CPU). Nicht immer, aber dazu kommen wir gleich. Die Chips übernehmen die Befehlsliste, übersetzen sie in eine „Sprache“, die sie verstehen, und führen dann die vorgeschriebenen Aufgaben aus. Spezielle Hardware tief im Prozessor speichert die Threads zur Analyse und sortiert dann die Liste der Anweisungen so, dass sie für die aktuelle Arbeit des Prozessors am besten geeignet ist.

Selbst auf älteren Intel Pentium-Prozessoren können Thread-Anweisungen neu angeordnet werden, um die Leistung zu maximieren. Heutige CPUs hingegen enthalten weitaus ausgefeiltere Thread-Management-Tools. Es werden nicht nur aktuelle Prozesse, sondern auch mögliche zukünftige Arbeitsbelastungen berechnet.


Intel Pentium-Prozessor im Detail von Fritzchens Fritz.

Die Branch-Assertion-Technik gibt es schon seit langem und sie ist ein wertvoller Bestandteil der CPU. Wenn der Thread-Thread Anweisungen wie „Wenn, dann, sonst“ enthält, stellt die Annahmeschaltung fest, welches Ergebnis am wahrscheinlichsten ist. Die Antwort aus dieser Annahme ermöglicht es der CPU dann, den Befehlsspeicher zu steuern und die für die logische Entscheidung erforderliche Arbeit auszuführen.

Wenn die Vorhersage korrekt ist, wird Aufzeichnungszeit gespart, ohne dass auf die Verarbeitung des gesamten Threads gewartet werden muss. Andernfalls dauern die Prozessabläufe länger, was nicht erwünscht ist. Aus diesem Grund verbringen Chipdesigner so viel Zeit mit Annahmen über „Zweigprädiktoren“.

Ob im Desktop- oder Serverbereich, die Zentralprozessoren der 1990er Jahre hatten nur einen Kern. Dies führte dazu, dass Prozessoren jeweils nur einen Thread ausführen konnten, obwohl sie mehrere Anweisungen gleichzeitig ausführen konnten (sogenannte Superskalare).

Server und High-End-Workstations müssen mehrere Threads, also mehrere Aufgaben, bewältigen. Systeme in der Pentium-Ära verfügten oft über zwei Kerne, die die Arbeitslast unterstützten. Die Idee, dass ein Prozessor mehrere Threads gleichzeitig verwalten könnte, wurde jedoch lange diskutiert.

Im Laufe der Jahrzehnte gab es verschiedene Projekte, die die Möglichkeit untersuchten, dass ein Prozessor auf mehreren Threads gleichzeitig läuft. Allerdings konzentrierten sich diese Projekte immer noch darauf, Anweisungen von nur einem Thread zu einem zufälligen Zeitpunkt auszuführen.

Die Idee eines Prozessors, der in der Lage ist, mehrere Thread-Anweisungen auf dem Kernel auszuführen (d. h. gleichzeitiges Multithreading-SMT), musste warten, bis die erforderlichen Hardwarefunktionen bereitgestellt wurden. Letztendlich erreichte Intel sein Ziel mit dem Pentium 4-Prozessor, den es 2002 auf den Markt brachte. Diese CPU war der erste Desktop-Prozessor mit voller SMT-Fähigkeit. SMT wurde von Intel unter dem Namen Hyper-Threading-Technologie veröffentlicht. Diesen Begriff haben Sie sicher schon oft gehört. Andererseits verfügen AMDs Prozessoren auch über SMT-Unterstützung und eine spezielle Namensgebung seitens des Unternehmens wurde nicht vorgenommen.

Wie genau läuft also ein einzelner Kern in einem Prozessor gleichzeitig auf zwei Threads? Stellen Sie sich die CPU als eine komplexe Fabrik mit mehreren Stufen vor; Es empfängt und organisiert seine Rohmaterialien (dh Daten) und sortiert dann seine Aufträge (Threads) in mehrere kleine Missionen.

Genauso wie bei der Massenproduktion von Automobilen mehrere Module gleichzeitig bearbeitet werden, ein oder zwei gleichzeitig. Der Prozessor muss außerdem verschiedene Missionen in einer bestimmten Reihenfolge ausführen, um einen bestimmten Befehlssatz abzuschließen. Diese sequentiellen Arbeitslasten werden allgemein als Pipeline oder Pipe-Grenze bezeichnet. Einige Prozesse bleiben eine Weile in der Warteschleife, bis die vorherigen Schritte abgeschlossen sind.

Hier kommt SMT ins Spiel. Hardware, die den Status jedes Moduls in einer Prozesslinie verfolgt, wird verwendet, um zu bestimmen, ob ein anderer Thread inaktive Threads verwenden kann, ohne den aktuellen Thread zu stoppen.

Die Tatsache, dass Desktop-CPUs schon lange vor Multi-Core Multi-Thread-fähig wurden, zeigt, dass SMT viel einfacher zu implementieren ist. Was die Northwood-Architektur von Intel betrifft, waren weniger als 5 % des gesamten Chipchips für die Verarbeitung von zwei Threads verantwortlich.

SMT-fähige CPU-Kerne sind so angeordnet, dass sie dem Betriebssystem als unterschiedliche logische Kerne erscheinen. Physisch teilen sie viele der gleichen Ressourcen, agieren jedoch unabhängig voneinander.

Desktop-Prozessoren können bis zu zwei Threads pro Kern verarbeiten, da die Prozessgrenzen relativ kurz und einfach sind. Darüber hinaus zeigt die Analyse der Designer, dass zwei Threads die optimale Grenze darstellen.

4 und 8 Threads

Am anderen Ende des Spektrums stehen massive Serverprozessoren wie der alte Intel Xeon Phi oder der neue IBM POWER. Chips, die große Informationen verarbeiten können, können 4 bzw. 8 Threads pro Kern verarbeiten. Dies liegt daran, dass ihr Kernel mehrere Prozessgrenzen mit gemeinsam genutzten Ressourcen enthält.

Zusammenfassend lässt sich sagen, dass Prozessoren, die den Endverbraucher erreichen, über Kerne verfügen, die maximal zwei Threads verarbeiten. Es scheint, dass sich daran noch lange nichts ändern wird, aber wir wissen nicht, was die Zeit bringen wird. Mittlerweile gibt es sehr unterschiedliche Arbeitslasten, die Chips bewältigen müssen. Letztendlich sahen wir verschiedene Ansätze für das CPU-Design, wie zum Beispiel Xeon Phi und IBM POWER.

Die zentrale CPU ist nicht der einzige Chip in einem Computer, der mehrere Threads verarbeiten muss. Es gibt eine andere Sorte mit einer ganz spezifischen Rolle, die Tausende von Threads gleichzeitig verarbeitet: die GPU.

GPUs unterscheiden sich aufgrund ihrer prestigeträchtigen Grundstruktur stark von CPUs. Grafikchips sind physikalisch größer, verfügen über viel mehr Transistoren, verbrauchen mehr Strom und können eine enorme Anzahl an Threads verarbeiten.


AMD Navi 21 GPU

Nehmen wir als Beispiel AMDs Radeon RX 6800 Grafikkarte mit Navi 21 Chip. Der RX 6800 enthält genau 60 Compute Units (CUs). Außerdem befinden sich in jeder Recheneinheit kleinere Einheiten (auch Kerne genannt), die 64 verschiedene Threads ausführen können. Das sind mindestens 3.840 Threads in Bewegung.

Unterschied zwischen GPU und CPU

Wie kann eine GPU so viel mehr bewältigen als ein Zentralprozessor? Jede CU verfügt über zwei Sätze von SIMD-Einheiten (Single Instruction, Multiple Data), von denen jede gleichzeitig 32 andere Datenelemente verarbeiten kann. Jeder kann unterschiedliche Threads verarbeiten. Der wichtige Punkt ist jedoch, dass jeder Thread der Prozesseinheit mit genau denselben Befehlssätzen arbeiten muss.

Sie sollten den grundlegenden Unterschied zwischen GPU und CPU besser verstanden haben. Ein Desktop-Prozessorkern kann zwei Threads verarbeiten. Befehlssätze können sich völlig von völlig unabhängigen Prozessen unterscheiden. Das bedeutet, dass Grafikchips viele verschiedene Aufgaben gleichzeitig ausführen können.

GPUs sind oft so konzipiert, dass sie immer wieder identische Prozesse aus beispielhaften Prozessen ausführen, die Arbeitslasten sind jedoch alle weitgehend parallel zueinander. Die größten Spiele von heute erfordern aufgrund der komplexen 3D-Grafik eine unglaubliche Menge an Mathematik, die in nur wenigen Millisekunden gerendert werden muss. Kurz gesagt, es erfordert Aufwand bei einer unglaublichen Anzahl von Threads.

In einigen Anwendungsfällen spielt Multithreading eine entscheidende Rolle, während es in anderen nahezu keinen Nutzen bringt. Normalerweise teilen wir Ihnen die Cinebench-Ergebnisse in unseren Prozessor-Testbildern mit. Hier gibt es zwei unterschiedliche Scores, „Single Core“ und „Multi Core“.

Im Single-Core-Test wird nur ein Thread genutzt, im anderen hingegen so viele Threads, wie die CPU insgesamt verarbeiten kann. Multithread-Testergebnisse sind immer höher als Single-Threaded-Testergebnisse. Aber warum?

Cinebench ist eine Testsoftware, die 3D-Grafiken wie in einem Spiel erstellt. Wir haben gerade erwähnt, dass GPUs mehrere Threads parallel verarbeiten, um 3D-Grafiken zu rendern. Prozessoren mit einer großen Anzahl an Kernen können Prozesse normalerweise deutlich schneller ausführen. Wenn diese Kerne über die SMT-Technologie (Hypher-Threading auf Intels Seite) verfügen, geht es noch schneller. Mit anderen Worten: Kerne können mehrere Arbeitslasten gleichzeitig bewältigen und an Threads arbeiten. Dies ist der Grund für die unterschiedlichen Cinebench-Ergebnisse.

Wie Sie sich vorstellen können, steigen mit der Anzahl der Kerne auch die Größe und der Preis der Chips. Leistungskerne mit SMT-Technologie scheinen immer große Vorteile zu bieten, aber das ist eine Frage der Zeit. Einige Anwendungen und Spiele konzentrieren sich auf die Multi-Core-Leistung, während andere sich auf die Leistung eines einzelnen Kerns konzentrieren.

Schauen wir uns zum Beispiel einige Tests mit dem AMD Ryzen 9 3950X an, einer 12-Kern- und 12-Thread-CPU. In Tests mit 36 ​​Spielen zeigten einige Spiele bei aktivem SMT Leistungsvorteile von bis zu 16 %, während andere um bis zu 12 % schlechter abschnitten. Der durchschnittliche Unterschied betrug jedoch nur 1 %.

Die Multicore- und Thread-Nutzung ist viel nützlicher, insbesondere in Online- und Open-World-Spielen. Andererseits kann es bei aktiver Nutzung von SMT in einigen Spielen zu Leistungseinbußen kommen, wenn auch selten. Ein Spiel oder eine Anwendung stellt möglicherweise zu hohe Anforderungen an das Speichersystem des Prozessors (Cache, Bandbreite und RAM). Zwei Threads, die Zugriff auf den Speicher in einem Kern anfordern, können dazu führen, dass ein Thread manchmal stoppt, obwohl er warten sollte. Je mehr Threads eine CPU ausführt, desto wertvoller wird das Cache-System.

Insbesondere die SMT-Funktion trägt fast immer positiv zur Leistung bei. Einige Softwareprogramme und Spiele nutzen die Multi-Core-Leistung, während andere sich auf die Single-Core-Leistung konzentrieren.

Beim Spielen können Sie von der gerade erwähnten Process Explorer-Software profitieren. Werfen wir einen Blick auf ein paar Spiele wie Cyberpunk 2077, Spider-Man Remastered und Shadow of the Tomb Raider. Alle drei wurden für PC und Konsole entwickelt, sodass wir davon ausgehen können, dass 4-8 Threads verwendet werden.

Auf den ersten Blick scheinen die Spiele zu viele Threads zu verwenden. Wenn wir die Prozesspartikel jedoch genauer untersuchen, erhalten wir ein klareres Bild. Werfen wir einen genaueren Blick auf Shadow of the Tomb Raider. Wie Sie unten sehen können, existiert die überwiegende Mehrheit der Threads nicht, wenn es um die CPU-Verfügbarkeit geht (zweite Spalte, in Sekunden). Obwohl der Prozess und das Betriebssystem mehr als hundert Threads erstellt haben, wird mehr als einer davon in sehr kurzer Zeit ausgeführt.

Die Cycles-Delta-Kosten stellen die Gesamtzahl der CPU-Zyklen dar, die der Thread im Prozess ausführt. In Tomb Raider sehen wir, dass es nur von zwei Threads verwaltet wird.

Die Anzahl der Zyklen scheint eine sehr kleine Zahl zu sein. Beträgt die Prozessortaktfrequenz jedoch 4,5 GHz, dauert ein Zyklus nur 0,22 Nanosekunden. 1,3 Milliarden Zyklen entsprechen also knapp 300 Millisekunden.

Natürlich funktionieren nicht alle Spiele auf diese Weise, wir haben uns nur ein Beispiel angesehen. Vorveröffentlichte Spiele meistens konzentriert sich auf einen einzelnen Kern. Wie Sie wissen, konzentriert sich Intel seit langem auf die Single-Core-Leistung, wir haben in Spielen eine flüssigere Leistung gesehen. Nicht das in neuen SpielenWir können sagen, dass der Wert mehrerer Kerne und Threads größer ist.

Wenn wir uns Call of Duty, das 2003 erstmals auf den Markt kam, genau ansehen, sehen wir, dass das Bild völlig anders ist. Bei dem für die Ausführung von Spielen früherer Jahre erforderlichen Prozess wurde alles in einem Hauptthread bereitgestellt. Dies lag daran, dass ältere CPUs über wenige Kerne verfügten und nur bestimmte Modelle SMT unterstützten.

Während Call of Duty einen einzelnen Thread erzeugt, der fast alle Prozesse und Ausführungen erledigt, nutzt Shadow of the Tomb Raider simultanes Multithreading (soweit die CPU dies unterstützt).

Die neuesten Konsolen verfügen jetzt über 8-Kern-Prozessoren mit 2-Wege-SMT. Desktop-Prozessoren verfügen über eine große Anzahl an Kernen und Threads. Infolgedessen zukünftige Spiele viel schwererer FadenIch kann Ihnen sagen, dass Sie es verwenden werden.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert