HyperThreading führt seinen Weg in die Anwendung

Videobearbeitung Threads Run Riot (aber in Synch) Für den Desktop stellt die Videobearbeitung eine rechenintensive Desktop-Anwendung dar, für die HT spürbare Leistungsvorteile bieten kann. Intel beschreibt in einem Whitepaper, wie hypothetisch die CPU einen Stream von unkomprimiertem Video lesen und die Spezialeffekte in Echtzeit verarbeiten würde, während der verarbeitete Videostream dann auf einer Festplatte in dieser Anwendung gespeichert würde. Dies

Videobearbeitung Threads Run Riot (aber in Synch)

Für den Desktop stellt die Videobearbeitung eine rechenintensive Desktop-Anwendung dar, für die HT spürbare Leistungsvorteile bieten kann. Intel beschreibt in einem Whitepaper, wie hypothetisch die CPU einen Stream von unkomprimiertem Video lesen und die Spezialeffekte in Echtzeit verarbeiten würde, während der verarbeitete Videostream dann auf einer Festplatte in dieser Anwendung gespeichert würde. Dieses Problem kann besonders leistungsempfindlich sein, wenn die Spezialeffekte auf einen Live-Video-Stream angewendet werden müssen, sagt Intel. Die verfügbare Zeit für die Verarbeitung jedes Video-Frames ist endlich und sollte vor dem nächsten Frame verarbeitet werden.

Beim Threading sind einige Informationen entscheidend für den Erfolg der Gewindeversion. Wenn die Spezialeffekte, die an jedem Pixel des Videorahmens auszuführen sind, beispielsweise komplex sind, dann wird die Funktion die rechenintensiven Kriterien erfüllen, für die HT gilt. Abhängig von der Größe des Videorahmens kann die Verarbeitung jedes Rahmens in mehrere Teile unterteilt werden, und jeder Teil kann gleichzeitig unter Verwendung von Threads verarbeitet werden. Dies führt zu dem, was Intel ein "Datenzerlegungsproblem" nennt, das für die Zeit gilt, die für jede Threadverarbeitungsaufgabe zugewiesen ist. In jedem Thread-Design umfassen die ersten Bereiche, auf die abgezielt wird, die meisten Zeitprozessor-konsumierenden Bereiche im Code. In dem hypothetischen Videobearbeitungsbeispiel ist die Anwendung von Spezialeffekten auf den Videorahmen die zeitaufwendigste Aufgabe, gefolgt von der I / O zum Lesen und Schreiben eines Rahmens. Der Haupt-Thread agiert als Master-Thread und unterteilt den aktuellen Video-Frame in vier Teile in der Einrichtungsphase, wie in 7 (a) dargestellt. Sobald die Daten eingerichtet sind, wacht der Master-Thread die drei anderen Threads auf und alle vier Threads, einschließlich des Masters, arbeiten an seinem eindeutigen Abschnitt des Videoframes. Sobald die Threads ihre Daten verarbeitet haben, warten sie auf eine Barriere für alle Threads, um ihre Abschnitte des Frames zu vervollständigen. Der Master unterbricht dann alle Worker-Threads und schreibt den verarbeiteten Frame auf die Festplatte, bevor er den nächsten verfügbaren Frame aus dem Stream 7 (b) und (c) liest.

Leistungssteigerung messen

Die HT-Spezialeffekt-Anwendung hängt von einem Balanceakt ab, bei dem der Haupt-Videoalgorithmus nicht auf den vollen Überschuss läuft, so dass der unbenutzte Teil der Pipeline einen anderen Thread verarbeiten kann. Die Spezialeffektverarbeitung in der Videobearbeitungsanwendung kann beispielsweise 80% der Verarbeitungszeit und die E / A die restlichen 20% der Zeit ausmachen, wobei der Bildlesevorgang die Hälfte der E / A-Zeit und die verarbeitete Zeit ausmacht Rahmen schreibt die andere Hälfte. Unter der Annahme einer perfekten Skalierung für den Gewindeabschnitt des Laufs kann die erwartete Leistung dieser Art von Anwendung niemals höher als fünf sein, sagt Intel. Bei Verwendung von vier Threads kann die Leistung niemals größer als 2, 5 sein, da der serielle Teil immer noch 20% des seriellen Laufs und der parallele Teil für 80% der vier Teile ausmacht. Dies ist die obere Grenze für die Skalierungsleistung, wenn vier Threads verwendet werden. In der Realität kann aufgrund von System-Overheads, die aufgrund des Threads der Anwendung eingeführt werden, jedoch erwartet werden, dass die Leistung niedriger als 2, 5 ist.

Top