Intel Skylake: Inverses Hyper-Threading soll Single-Thread-Leistung beschleunigen

Don

[printed]-Redakteur, Tweety
Thread Starter
Mitglied seit
15.11.2002
Beiträge
26.596
<p><img src="/images/stories/logos-2015/intel3.jpg" width="100" height="100" alt="intel3" style="margin: 10px; float: left;" />Intels Informationspolitik zwischen dem Unternehmen selbst und den gewillten Käufern und auch die mit den Pressevertretern darf derzeit als kompliziert bezeichnet werden. Maßgeblich dafür verantwortlich ist sicherlich vorrangig die Produktpolitik, die wenig von der Zielstrebigkeit und Einfachheit der Vergangenheit gemein hat. Das Tick-Tock-Prinzip hat zwar noch Bestand, allerdings sind die Zyklen der Generationen ein wenig aus dem Takt geraten. Auf die noch recht eindeutig positionierte Haswell-Generation folgte Broadwell, in der vieles aus den gewohnten Fugen geriet. Verschiedene Produktbereiche wurden gänzlich ausgelassen oder wurden kaum bedient. Groß...<br /><br /><a href="/index.php/news/hardware/prozessoren/36321-intel-skylake-inverses-hyper-threading-beschleunigt-single-thread-leistung.html" style="font-weight:bold;">... weiterlesen</a></p>
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
wollt ihr jetzt ernsthaft eine sehr fragwürdige spekulation als tatsache hinstellen?
 
Wow, bin mal gespannt wie weit diese Technik "mehrere Cores arbeiten an einem Thread" dann von AMD nächstes Jahr auch in Zen integriert ist.

Wäre doch Hammer wenn man 8-16 Kerne an 2 Threads arbeiten lassen könnte, da würde sogar Arma und DayZ 1a laufen ;D
 
Sorry, das fragt hier genau der Richtige, Mr. RebrandsinddasnichtInsider.
Danke :haha:

Wow, bin mal gespannt wie weit diese Technik "mehrere Cores arbeiten an einem Thread" dann von AMD nächstes Jahr auch in Zen integriert ist.

Wäre doch Hammer wenn man 8-16 Kerne an 2 Threads arbeiten lassen könnte, da würde sogar Arma und DayZ 1a laufen ;D
Ich finde es einerseits,nun ja,gemogelt.Aber andereseits eine hochintelligente Technologie.Sollte nur ein Core benötigt werden,einen anderen Core zur Leistungssteigerung nutzen.Das wäre für den FX mit seiner schwachen single thread Leistung ein Segen gewesen.Warum nicht "brachliegende" Leistung nutzen?
 
Klingt mal wieder ZU gut um Wahr zu sein. Aber lassen wir uns mal überraschen.
 
In der Praxis wahrscheinlich so gut anzutreffen wie AVX Befehle...
 
Hmm.. Aber irgendwie schon komisch. Nach dem Diagramm ist jetzt die Leistung mit einem Core am höchsten:fresse: Mit 5 Core am niedrigsten und auch
mit 8 Core deutlich unter einem???
 
ist doch eh wayne, es gibt keine Single thread Anwendungen mehr.

Naja, da wäre ich mir nicht so sicher. Gerade im professionellen* Bereich gibt es Anwendungen, die zwar Multithreaded geschrieben sind, allerdings in einer Sparversion die nur die GUI und Worker trennt.
Bei Matlab/Simulink hat man dazu das Phänomen, dass die Multithreading-Fähigkeiten mit einer extra Toolbox kommen, die natürlich extra kostet und kompliziert einzubinden ist. Während bestimmte Matlab-Befehle dann automatisch threaded ausgeführt werden können, sieht es bei Simulink düster aus. Obwohl sich gerade Modellierung und Simulation für die Aufteilung auf mehrere Kerne anbieten würden, muss da die Einführung von Multithreading auf unterster Ebene stattfinden, was bedeutet, dass vieles neu gemacht werden muss und fertige Modelle wiederum die entsprechende Toolbox voraussetzen.

Unterm Strich glaub ich aber, dass der Artikel es ursprünglich mehr auf den dürftigen Informationsfluss seitens Intel abgesehen hat als auf das eigentliche "Feature".
 
Sorry, das fragt hier genau der Richtige, Mr. RebrandsinddasnichtInsider.
womit ich bis heute recht hatte, du troll!

- - - Updated - - -

Klingt mal wieder ZU gut um Wahr zu sein. Aber lassen wir uns mal überraschen.
das sind doch nur feuchte fanboyträume, auch die AMD-Fanboys träumen davon.

Bulldozer sollte es auch schon unterstützen, jetzt glauben einige bei Zen ist es so weit,...
Reverse hyperthreading/Inverse hyperthreading/Speculative multithreading/... geistert schon seit vielen jahren durchs netz

- - - Updated - - -

Hmm.. Aber irgendwie schon komisch. Nach dem Diagramm ist jetzt die Leistung mit einem Core am höchsten:fresse: Mit 5 Core am niedrigsten und auch
mit 8 Core deutlich unter einem???
die ganze spekulation ist "komisch", mit einem benchmark wollen die bei Heise das also erkennen können, da müßte man schon bei mehreren benchmarks etwas sehen...
 
Zuletzt bearbeitet:
Coole Sache, mehr Single Thread Performance ist immer gut.

ist doch eh wayne, es gibt keine Single thread Anwendungen mehr.

Würde ich nicht sagen. Selbst wenn dir eine Anwendung vorgaukelt, sie läuft auf zwei oder gar 4 Threads, dann gibt es meist einen Masterthread und wenn der durch eine miese Single Thread Performance limitiert wird, dann bringen auch weitere Threads nichts mehr.
 
Würde ich nicht sagen. Selbst wenn dir eine Anwendung vorgaukelt, sie läuft auf zwei oder gar 4 Threads, dann gibt es meist einen Masterthread und wenn der durch eine miese Single Thread Performance limitiert wird, dann bringen auch weitere Threads nichts mehr.
Exakt das wollte ich auch grad schreiben!
Bei Alltagsanwendungen davon zu reden, die Singlethreadleistung wäre egal, ist schon ziemlicher Quatsch.
Ob diese Leistungssteigerung durch Skylake aber tatsächlich nennenswerte Auswirkungen hat, wird man in der Tat mit detailierteren Anwendungen/Benchmarks testen müssen. Die Frage ist ja wie flexibel das ganze ist. Wenn auf den anderen Kernen auch 10-50% Last ist, können dann immernoch Ressourcen auf den einen vollbelasteten Kern umgeleitet werden?
 
Gerade bei alten Games wie Gothic3, die massig Power in einem Thread brauchten, wäre das ne super Sache.
Ist natürlich ne Randgruppe, die sowas spielt aber die Leute existieren.
 
aber wie schon gesagt, die meisten Aufgaben (Berechnungen) lassen sich nicht parallelisieren und können somit grundsätzlich immer nur von einem einzelnen Kern getätigt werden.
Jetzt gehen wir allerdings wieder etwas zu weit!
Was sich nicht wirklich aufsplitten lässt sind natürlich Dinge die direkt aufeinander basieren. Also willst du C berechnen und es gilt C = A + B, dann musst du A, B und C auch in dieser Reihenfolge auf einem Thread berechnen.
In der Praxis sind das aber nur kleine Teile von Programmen - nichts was für spürbare Verzögerung sorgt.
 
Jetzt gehen wir allerdings wieder etwas zu weit!
Was sich nicht wirklich aufsplitten lässt sind natürlich Dinge die direkt aufeinander basieren. Also willst du C berechnen und es gilt C = A + B, dann musst du A, B und C auch in dieser Reihenfolge auf einem Thread berechnen.
In der Praxis sind das aber nur kleine Teile von Programmen - nichts was für spürbare Verzögerung sorgt.


Dazu kommt noch, dass es alles andere als einfach ist Multithreaded zu programmieren. Bei sowas muss man viel mehr berücksichtigen und noch über das Gesamte den Überblick behalten.
 
Richtig. Der Aufwand steigt so ziemlich exponentiell - besonders bei sehr komplexen Dingen wie Games.
Afwand bedeutet aber auch meist Mehrkosten, deswegen steht das nicht an erste Stelle in den Softwarehäusern.
 
Hmm.. Aber irgendwie schon komisch. Nach dem Diagramm ist jetzt die Leistung mit einem Core am höchsten:fresse: Mit 5 Core am niedrigsten und auch
mit 8 Core deutlich unter einem???

Das ist alles andere als komisch. Dieser Benchmark ist ja absichtlich nur singlethreaded ausgelegt.
Erzwingt man nun das der Bench auf einem Kern läuft, versucht windoof nicht ihn zu verteilen -> maximale Geschwindigkeit.
Lässt man windoof aber verwalten (das kostet zeit/Leistung) so wird der singlethread Bench verteilt und somit ausgebremst.

-> Singlethread, der auf mehrere Kerne verteilt wird ist in der Regel langsamer als wenn er auf einen Kern "gezwungen"/beschränkt wird.

Man kann halt nicht alles einfach so im nachhinein parallelisieren, wenn das nicht von Anfang an bei der Entwicklung erledigt wurde.
 
Zuletzt bearbeitet:
@Tzk:
Du hast im Prinzip schon recht. Wenn ein sheduler zwecks gleich mäßiger Auslastung, einen einzelnen Thread in hohem Tempo von Kern zu Kern reicht, geht einiges/etwas an Leistung verloren.
Handelt es sich aber beim dem Benchmark wirklich um eine singlethread Anwendung?

Bezweifle das, denn dieses Phänomen ist ja offenbar auf einem Haswell nicht aufgetreten, denn auf dem Diagramm sieht man eine eindeutige Steigerung mit jedem Kern <5. Es ist allerdings auch keine Anwendung die wirklich ordentlich mit den Threads skaliert...
Wahrscheinlich bremsen zeitgleiche aufrufe an den Speicher (bei Physiksimulationen nichtunüblich), oder das Ganze ist eher schlecht entwickelt/optimiert.
 
Zuletzt bearbeitet:
Wenn man den Benchmark auf einen Thread fixiert, dann sollte der wohl singlethreaded laufen. Trotzdem scheint der 6700k in diesem Fall ja trotzdem die Geschwindigkeit von 2/3/4 Threads zu erreichen. Der 4790k schafft das ja nicht.

Ob man daraus jetzt schließen soll, das der 6700k ein magisches reverse-HT feature hat? Ich weiß ja nicht... ;)
 
weiß man wann skylake bei den laptops/ultrabooks ankommt?
ich will endlich n dell xps13, aber nur mit skylake
 
Wäre doch Hammer wenn man 8-16 Kerne an 2 Threads arbeiten lassen könnte, da würde sogar Arma und DayZ 1a laufen ;D
Erstens wird das nicht funktionieren und zweitens würde das sowieso nichts bringen. Der Overhead bei so vielen Kernen wäre viel zu gross und ILP ist begrenzt. Da braucht's dann schon radikalere Konzepte wie VISC.
 
Richtig. Der Aufwand steigt so ziemlich exponentiell - besonders bei sehr komplexen Dingen wie Games.
Afwand bedeutet aber auch meist Mehrkosten, deswegen steht das nicht an erste Stelle in den Softwarehäusern.

Naja, kommt schon auch darauf an wie man programmiert und wie die Architektur aufgebaut ist. Das Problem ist eher, dass die meisten beim Programmieren lernen jede Art von Threading außen vor lassen, und dann nie threadsafe programmieren lernen. Was mir da letzte Zeit an Code untergekommen ist, ist nicht mehr feierlich.
 
genau genommen schreibt heise, dass die Messergebnisse "Anlass zu einer Spekulation" gewesen sind. Spekulation deswegen, weil zwar der Schluss auf inverses Hyperthreading erstens möglich, zweitens zulässig, aber drittens (eventuell) nicht zwingend ist. Das würde bedeuten, dass es andere Erklärungsmöglichkeiten geben könnte.
Es wäre nun interessant gewesen, wenn heise diese möglichen anderen Erklärungsansätze dargelegt hätte.
Ich gehe also davon aus, dass der Ausweis der Spekulation (in der technischen Seite der Sache) lediglich noch durch die Anzahl der
Erklärungsansätze für das gefundene Phänomen bedingt ist. D.h. ich gehe weiterhin (aufgrund der Expertise und des guten Namens von heise) davon aus, dass der Ausweis der Spekulation selbstverständlich eben nicht schon in der Nicht-Möglichkeit oder der Nicht-Zulässigkeit des Schlusses auf inverses Hyperthreading steckt.
Die Sache hat aber nicht nur eine erklärungsbedürftige technische Seite, sondern noch eine andere. Einen solchen Schluss zu veröffentlichen heißt, sich ein wenig aus dem Fenster zu lehnen. Möglich ist es daher, dass, insbesondere eingedenk der Tatsache, dass heise keine alternativen Erklärungsmöglichkeiten mitlieferte, der Schluss auf inverses Hyperthreading tatsächlich der einzig mögliche (und daher in Wahrheit zwingend ist) und daher der Ausweis der Veröffentlichung des Schlusses als "Spekulation" bloß aus allgemeiner professioneller journalistischer Vorsicht, also nur sozusagen kursorisch geschah.
Nächste Woche Donnerstag wird man zwar wahrscheinlich nicht erfahren, ob dies der einzige Erklärungsansatz ist, aber hoffentlich doch ob heise's Schluss schlicht zutreffend ist.

besser gesagt, falls der Schluss von heise falsch ist, wird man dadurch eben womöglich doch eine andere Erklärung hören
 
Zuletzt bearbeitet:
Meine Güte, bist du stolz drauf, hier im Forum so zu sprechen wie ein Aristokrat auf Pilze? :d
Deinen ellenlangen Text kann man so ziemlich in einem Satz zusammenfassen:
Heisse hat aufgrund der wenigen echten Informationen nur spekuliert und wir werden genaueres erfahren sobald Intel endlich die Infos zu Skylake veröffentlicht.
 
Es bleibt eine Vermutung, weil heise ja selbst geschrieben haben, dass das Phänomen nur bei diesem Benchmark auftrat. Bei anderen Benchmark's auf einem core war nix zu sehen. Also Ball flach halten. Aber geil wäre es schon. Würde auch DX12 absurdum erscheinen lassen wo man sich so viel Mühe gibt dem Renderprocess den CPU Overhead abzugewöhnen um die CPU Last zu minimieren.
 
Selbst wenn Skylake ein solches Feature bietet, so ist ja jetzt schon offensichtlich, dass es mit 0815 Software nicht ausgespielt werden kann und erst in einem Benchmark (theoretischer Maximalwert) aufgetaucht ist. Ein solcher Befehlssatz muss also wie bei allen anderen auch ersteinmal implementiert werden. Und da erst aktuelle Skylake Prozessoren diesen Befehlssatz bieten ist es wohl effektiver auf MultiCore zu setzen. Lange Rede kurzer Sinn. An DX12 führt kein Weg vorbei.
 
Hmm.. Aber irgendwie schon komisch. Nach dem Diagramm ist jetzt die Leistung mit einem Core am höchsten:fresse: Mit 5 Core am niedrigsten und auch
mit 8 Core deutlich unter einem???

Nein, darum gehts nicht. Es geht darum, dass die Leistung beim ersten Core im Vergleich zu Haswell eigentlich viel zu hoch ist. Und mit jedem weiteren zugeschaltetem Core/Thread Haswell aufholt. -> oder Skylake einbüßt. Worauf hin man eine Vermutung aufstellt, inder irgendwie in Skylake Ressourcen anderer physischer Cores möglicherweise mitgenutzt werden, was die deutlich höhere Leistung bei einem oder auch zwei Cores erklärt. -> logisch ist, dass Haswell bei 1-4 Cores nach oben skaliert. Etwas komisch erscheint, dass Skylake dies genau nicht macht -> allerdings ist das vielleicht auch eine Scheduler Konsequenz oder ähnliches.

Das ist alles andere als komisch. Dieser Benchmark ist ja absichtlich nur singlethreaded ausgelegt.
Erzwingt man nun das der Bench auf einem Kern läuft, versucht windoof nicht ihn zu verteilen -> maximale Geschwindigkeit.
Lässt man windoof aber verwalten (das kostet zeit/Leistung) so wird der singlethread Bench verteilt und somit ausgebremst.

Darum gehts aber gar nicht... Auch wenn du potentiell recht hast mit der Aussage. In dem Fall gehts aber gerade um das Verteilen, was der Prozessor ggf. intern für sich übernimmt und wo er somit Ressourcen anderer physischer Cores ranzieht um mehr Leistung zu erzielen.
Logisch ist, dass bei Last auf nur einem Thread und unter herranziehen von Ressourcen der anderen drei Cores das "schnellste" Ergebnis erwartbar ist.
Eine Erklärung für den niedrigeren Wert bei Core 2-4 wäre bspw., dass die interne MT Umsetzung des Benchtools für diesen Test schlechter funktioniert als diese spekulierte Ressourcennutzung anderer physischer Cores des Prozessors!

Jetzt gehen wir allerdings wieder etwas zu weit!
Was sich nicht wirklich aufsplitten lässt sind natürlich Dinge die direkt aufeinander basieren. Also willst du C berechnen und es gilt C = A + B, dann musst du A, B und C auch in dieser Reihenfolge auf einem Thread berechnen.
In der Praxis sind das aber nur kleine Teile von Programmen - nichts was für spürbare Verzögerung sorgt.

Du denkst zu kurz... Nicht die einzelne Berechnung ist das Problem, sondern das Problem ist, dass einige/mehrere dieser Berechnungen in gewissen Sinnabschnitten zueinander stehen... Und du entsprechend diese Sinnabschnitte in einem Thread zusammen fassen wirst -> oder pro Sinnabschnitt dann wieder einen Thread baust, welcher die Arbeit auf mehrere Unterthreads aufsplittet.
Am Ende bleibt aber trotzdem der Sinnabschnitt vorhanden und dieser Sinnabschnitt lässt sich idR oftmals bei dynamischem Kontent NICHT! beliebig zerhackstückeln... Games sind Programme mit viel dynamischem Kontent. Sachen wie das Rendern einer fixen Szene hingegen ist klar statischer Kontent. Letzteres kannst du nahezu beliebig zerhackstückeln um somit die Leistung zu steigern. Bei Games hingegen basiert alles auf wenigen Basisdaten gepaart mit einigen dynamischen Werten, die dort einfließen. Die Zeitlänge der Berechnung kommt einfach dadurch zustande, dass diese wenigen Werte sehr oft berechnet werden. Nämlich mit jedem Rundendurchlauf. Das Spielbackend ist dabei noch losgelöst vom Grafikbackend. -> letzteres läuft auf die FPS raus. Ersteres hingegen läuft davon völlig losgelöst -> sonst hättest du da bei mehr Leistung und mehr FPS auch ein schnellers Spiel (was früher mal so war!)
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh