Ist aktuell bekannt, ob schon Spiele in Planung sind, die Intels Hyperthreading-Technologie und damit das Potential des I7 nutzen? Bisher ist es ja eher so, dass Hyperthreading hinderlich ist und die performance eher mindert (siehe aktuelles Beispiel BF3).
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Hyperthreading bald für PC-Spiele?
- Ersteller lead341
- Erstellt am
Alienate.Me
Captain
- Registriert
- Aug. 2010
- Beiträge
- 3.230
jedes Xbox360 spiel ist eigentlich auf HT optimiert. 3 Kerner + SMT. bei pc games wird nicht daraufhin optimiert. HT funktioniert aber in spielen heute schon gut. ein i3 2100 kann durchaus mit 4 kernern in spielen mithalten, die von 4 threads profitieren.
Zuletzt bearbeitet:
Deadbones schrieb:wenn man bedenkt, dass die meisten spiele eh portierungen sind und das kaum jmd einen cpu mit HT hat... nein, eher nicht. dafür gibts halt kaum einen markt.
Kaum einer eine CPU mit HT ? Wenn ca. 72% der Spieler weltweit eine intel-CPU nutzen, HT bis in die heutigen Midrange-CPUs verbreitet ist und es HT zudem seit dem P4-Northwood (2002 ?) gibt ? Eher kein richtiges Argument.
Bei einem Dualcore mit HT nutzt es im Regelfall, ab 4 Kernen skaliert derzeit kaum eine Engine, Bf3 (FB2) "nur" mit 10% bei 6 Kernen (trotz 50% mehr Kerne als ein 4core). Allerdings hat der Bulldozer ja ausgerechnet bei Bf3 und der derzeit wohl am besten mit der Anzahl der Kerne skalierenden Engine sein "größte Stärke", besser gesagt: seine geringste Schwäche.
Das lässt mE hoffen, dass in absehbarer Zeit auch HT zumindest mit einem geringen Vorteil genutzt wird. Da allerdings die Zahl der Kerne - also der echten - ebenfalls zunimmt, muss sich das nicht bewahrheiten. Die Vorteile liegen eher im Office- und den sonstigen normalen Arbeitsbereichen.
maddinattack
Lt. Commander
- Registriert
- Dez. 2007
- Beiträge
- 1.514
Ich hoffe einfach das BF3 dafür ein Patch raus bringt.
Mein I7 860 20x200= 4 Ghz ohne HT ist bei ca. 70% Auslastung in Full HD und Ultra + 2xmsaa und 16x aa
Mit HT on sinds gerade mal nur noch ca. 36% auslastung, das sehe ich immer aktuell auf meiner Logitech G15.
Das Problem ist einfach, das wenn HT on ist, es slowdowns und ruckler gibt und das nicht gerade zu wenig zumal das Spiel einfach bei weitem nicht so flüssig läuft wie OHNE HT was man ja nun mehr fach liest.
DAS KOMISCH IST... BFBC2 kann wunderbar mit HT umgehen.... sowas sollte eigentlich dann bei BF3 auch der fall sein gerade bei diesen EXTREMEN Hardwareanforderungen.
Mein I7 860 20x200= 4 Ghz ohne HT ist bei ca. 70% Auslastung in Full HD und Ultra + 2xmsaa und 16x aa
Mit HT on sinds gerade mal nur noch ca. 36% auslastung, das sehe ich immer aktuell auf meiner Logitech G15.
Das Problem ist einfach, das wenn HT on ist, es slowdowns und ruckler gibt und das nicht gerade zu wenig zumal das Spiel einfach bei weitem nicht so flüssig läuft wie OHNE HT was man ja nun mehr fach liest.
DAS KOMISCH IST... BFBC2 kann wunderbar mit HT umgehen.... sowas sollte eigentlich dann bei BF3 auch der fall sein gerade bei diesen EXTREMEN Hardwareanforderungen.
MOS1509
Lt. Commander
- Registriert
- Aug. 2010
- Beiträge
- 2.003
Naja, Hyperthreading nutzen heißt ja nicht anderes als mehr als vier Kerne nutzen können. Eine Dualcore-CPU mit Hyperthreading bringt in Spielen, die vier Kerne nutzen können, 20-30% mehr Leistung als auf einem Dualcore ohne HT. Und irgendwann werden bestimmt Spiele kommen, die mehr als vier Kerne unterstützen. Die Anzahl der Kerne auf den CPUs wird sich in den nächsten Jahren sicherlich auch weiter erhöhen. Allerdings glaube ich, dass es noch mindestens 1,5 - 2 Jahre dauern wird, bis eine größere Menge von neu erscheinenden Spielen mehr als vier Kerne unterstützt.
rainbow6261
Rear Admiral
- Registriert
- Juni 2011
- Beiträge
- 5.840
Vielleicht sollte man auch bedenken, dass die Optimierung für mehr als 4 Kerne immer zu Lasten derer geht die nicht soviel Kerne haben. Es hat halt nicht jeder einen Quadcore.
rainbow6261 schrieb:Vielleicht sollte man auch bedenken, dass die Optimierung für mehr als 4 Kerne immer zu Lasten derer geht die nicht soviel Kerne haben. Es hat halt nicht jeder einen Quadcore.
Das Argument ist aber Banane, weil es ja von den aktuell verbreiteten CPU's abhängt. Vor 3-4 Jahren hättest du dasselbe Argument bei DualCores bringen können...da man aber Fortschritt möchte und sich zumindest teilweise auch an Fortschrittsprognosen orientiert, fangen (einige) Spieleentwickler bzw. Engineentwickler heute schon an für die Hardware von morgen Software zu schreiben.
Wenn ich jetzt Ende 2011 eine Produktion von beispielsweise einem Spiel starten würde (ausgegangen von einem hardwarehungrigen Spiel, also nicht Sudoku in 2D oder sowas), würde jetzt ja auch kein ernstzunehmender Entwickler noch ein Spiel für Dualcores schreiben...das würde wohl in aller Regel für QuadCores oder gar gleich für Hexa/Octocores optimiert werden.
Einfach weil die Entwicklungszeit 1 bis n Jahre dauert und man abschätzt, was in den 1 bis n Jahren für Hardware auf dem Markt sein wird.
Da der DualCore-Markt recht gesättigt ist, QuadCores aber immer mehr auf dem Vormarsch sind, kann man sich an ein paar Fingern abzählen, dass in 1-3 Jahren, je nach Käuferschicht, (bei Crysis Spielern wohl eher 1 Jahr, bei Lokomotivensimulationsspielern wohl eher 3 Jahre), die DualCores am aussterben sind und die absolute Masse über QuadCores verfügen wird...ergo wird jeder ernstzunehmende Spieleentwickler, der Software in 1-3 Jahren verkaufen will, je nach Käuferschicht, seine Software auch mindestens für QuadCores optimieren...
Neue Software heutzutage noch für DualCores zu optimieren wäre nur dann kein Blödsinn, wenn die Software so genügsam ist, dass 2 Cores aktueller CPUs vollkommen ausreichen, um die Software mit Rechenleistung zu versorgen.
Zuletzt bearbeitet:
Quantität
Lt. Commander
- Registriert
- Jan. 2011
- Beiträge
- 1.126
Ich hab mal irgendwo gelesen das ein gescheiter Programmierer seinen Code entweder auf einen Kern optimiert, oder auf x-Kerne, alles dazwischen ist Mumpitz und ist als "Arbeitsbeschaffung" anzusehen. Weil entweder sind gewisse Codeaufgaben parallelisierbar, oder sie sind es nicht. Dann ist es nämlich egal ob 2,4,8 oder 512.000 Kerne, die Aufgabe wird mit wachsender Kernanzahl schneller abgearbeitet...
Kann dazu mal ein Fachexperte was sagen, weil ich hab keine Ahnung von Multi-Threading Programmierung in C++...
Kann dazu mal ein Fachexperte was sagen, weil ich hab keine Ahnung von Multi-Threading Programmierung in C++...
Konkret kann ich dazu zwar nichts sagen, aber soweit ich weiß, ist es so, dass du ein Programm immer auf n Kerne hin optimierst, da du bei der meisten Software nur eine endliche Anzahl von Threads sinnvoll auslasten kannst (irgendwo ist halt das Ende der Parallelisierbarkeit). Je parallelisierbarer du die Software gestaltest, desto größer wird der Arbeitsaufwand für die Programmierer.
Wobei man in diesem Kontext dann davon ausgeht, dass die Software überhaupt eben halt ihre Aufgaben in n Threads berechnet/unterteilt. Sie arbeitet also mit max. bis zu n Threads.
Die Optimierung im eigentlichen Sinne, wie hier im Thread auch "umgangssprachlich" benutzt, bedeutet dann ja viel mehr, dass du schaust, dass deine Software eben bei x Kernen vernünftig (also gut) skaliert, wobei x kleinergleich n ist.
Sprich:
n -> max. Anzahl an Kernen, mit der die Software arbeitet
und
x -> Anzahl der Kerne, bei der die beste Skalierung herrscht, also die höchste Ausbeute aus der theoretischen Performance pro Kern erreicht wird.
Wobei man in diesem Kontext dann davon ausgeht, dass die Software überhaupt eben halt ihre Aufgaben in n Threads berechnet/unterteilt. Sie arbeitet also mit max. bis zu n Threads.
Die Optimierung im eigentlichen Sinne, wie hier im Thread auch "umgangssprachlich" benutzt, bedeutet dann ja viel mehr, dass du schaust, dass deine Software eben bei x Kernen vernünftig (also gut) skaliert, wobei x kleinergleich n ist.
Sprich:
n -> max. Anzahl an Kernen, mit der die Software arbeitet
und
x -> Anzahl der Kerne, bei der die beste Skalierung herrscht, also die höchste Ausbeute aus der theoretischen Performance pro Kern erreicht wird.
Zuletzt bearbeitet:
MrChiLLouT
Commander
- Registriert
- Nov. 2010
- Beiträge
- 2.408
Hyperthreads sind nur virtuelle und keine physischen Threads. Somit kannst du zwar einen Leistungsschub bekommen, allerdings kann es auch sein, dass so ein Thread mit einer Leistungsaufwändigen Aufgabe "überfordert" wird und es zu Leistungseinbrüchen kommen kann. Das passiert aber eher in den seltensten Fällen. Hyperthreading ist im Moment nur unter Windows relevant, um die Arbeitsleistung bei hohem Multitasking zu optimieren. In Spielen allerdings wird man davon wohl eher kaum profitieren.
Das lässt sich ohne aufwendige Analyse im Einzelfall nicht pauschal begründen!
Mögliche Faktoren:
* Turbo schaltet durch häufigere Taskwechsel nich in die höheren Turbomodi
* Tasks werden länger als nötig auf einzelnen Kernen "geparkt"
* das Programm kommt mit mehr als 4 Kernen schlecht klar
HT ist eben wie Krypto- oder Multimediabefehle (SSE,AVX) keine Technologie, die man explizit ansprechen könnte.
Deshalb ist es A) nicht möglich darauf zu optimieren und B) von aussen schwer beeinflussbar.
Un diese Rechnung hier ist wirklich Blödsinn:
Ein Programm, dass keine 4 Kerne auslastet, kann auch mit 8 nicht schneller werden.
Da Windows die Auslastung stumpf zusammenrechnet, sinkt bei doppelter Kernanzahl die Auslastung des Gesamtsystems CPU eben auf rund die Hälfte.
Zusätzlich muss man beachten, dass die "virtuellen" HT-Kerne nur ca. 25% der Leistungsfähigkeit der realen Kerne haben können - Windows aber von 8 identischen Kernen ausgeht.
Die dürfen nämlich nur dann arbeiten, wenn die ersten 4 Kerne (aufgrund von Wartezeiten) Kapazitäten frei haben.
Mögliche Faktoren:
* Turbo schaltet durch häufigere Taskwechsel nich in die höheren Turbomodi
* Tasks werden länger als nötig auf einzelnen Kernen "geparkt"
* das Programm kommt mit mehr als 4 Kernen schlecht klar
HT ist eben wie Krypto- oder Multimediabefehle (SSE,AVX) keine Technologie, die man explizit ansprechen könnte.
Deshalb ist es A) nicht möglich darauf zu optimieren und B) von aussen schwer beeinflussbar.
Un diese Rechnung hier ist wirklich Blödsinn:
ohne HT ist bei ca. 70% Auslastung in Full HD und Ultra + 2xmsaa und 16x aa Mit HT on sinds gerade mal nur noch ca. 36% auslastung
Ein Programm, dass keine 4 Kerne auslastet, kann auch mit 8 nicht schneller werden.
Da Windows die Auslastung stumpf zusammenrechnet, sinkt bei doppelter Kernanzahl die Auslastung des Gesamtsystems CPU eben auf rund die Hälfte.
Zusätzlich muss man beachten, dass die "virtuellen" HT-Kerne nur ca. 25% der Leistungsfähigkeit der realen Kerne haben können - Windows aber von 8 identischen Kernen ausgeht.
Die dürfen nämlich nur dann arbeiten, wenn die ersten 4 Kerne (aufgrund von Wartezeiten) Kapazitäten frei haben.
mensch183
Captain
- Registriert
- Jan. 2008
- Beiträge
- 3.666
2 * Nö. Wenn der Hersteller mitbekommt, dass sein Programm auf solchen Rechnern durch HT an Leistung verliert, kann er diesen Fall sonderbehandeln. Dazu gibts 2 Varianten: A) Das Programm intern auf so wenige Threads begrenzen, daß genau nur die echten Cores Arbeit bekommen (die werden vom Scheduler des OS' bevorzugt, wodurch Programme mit bis zu 4 Threads auf 4Core/8Thread-Hardware gleich gut laufen sollten wie auf 4Core/4Thread-Hardware, also bei abgeschaltetem HT) oder B) die Threadzahl des Programms lassen wie sie ist, aber die virtuellen Kerne maskieren, damit der Scheduler sie für das Spiel gar nicht nutzt. Variante A funktioniert nur, wenn neben dem Spiel (außer Kleinkram) nicht noch andere Sachen laufen, da anderenfalls doch wieder mehr als 4 Cores genutzt werden. Beim Zocken von Spielen, bei denen es dem Nutzer auf Performance des Spiels ankommt, läuft eher selten viel nebenher. Variante A ist programmiertechnisch in der Regel aufwendig und für Spiele deshalb wohl eher theoretischer Natur. Variante B wäre leicht umzusetzen.rainbow6261 schrieb:HT ist eben wie Krypto- oder Multimediabefehle (SSE,AVX) keine Technologie, die man explizit ansprechen könnte.
Deshalb ist es A) nicht möglich darauf zu optimieren und B) von aussen schwer beeinflussbar.
Das (zu Windows) war bis Windows XP so. Der Scheduler im aktuellen Windows kann sehr wohl erkennen, welche der 8 "CPUs" auf einer 4core/8thread-Hardware sich Ressourcen teilen, also bei gleichzeitiger Verwendung langsamer werden und dementsprechend erst zum Einsatz kommen, wenn die anderen schon was zu tun haben. Linux tut das auch - und kümmert sich bei Mehrsockelsystemen (große getrennte Caches, oft lokal schneller erreichbarer Haupspeicher als der Speicher an den anderen Sockeln) noch auf einer 3. Ebene um sinnvolle Verteilung der Threds auf die vielen, ganz und gar nicht identischen Kerne.rainbow6261 schrieb:Zusätzlich muss man beachten, dass die "virtuellen" HT-Kerne nur ca. 25% der Leistungsfähigkeit der realen Kerne haben können - Windows aber von 8 identischen Kernen ausgeht.
BTW: Die beiden virtuellen Kerne eines HT-Paares bei den üblichen Intel-CPUs sind sehr wohl gleich schnell. Wenn nur einer der beiden was zu tun bekommt, ist es egal, ob du die Arbeit dem 1. oder 2. virtuellen Kern des HT-Paares übergibst. Es gilt nur zu vermeiden, beide Kerne eines HT-Paars gleichzeitig zu nutzen, solange andere HT-Paare noch komplett arbeitslos sind.
Es ist falsch zu sagen "HT-Kerne [haben] nur ca. 25% der Leistungsfähigkeit der realen Kerne". Es gibt keine "lahmen HT-Kerne" und "schnellen realen Kerne". Die Unterschiedlichkeit ergibt sich ausschließlich dann, wenn man jeweils 2 Kerne paarweise betrachtet. Da gibts voneinander unabhängige Paare (sie sind kein HT-Paar), die bei gleichzeitiger Belastung doppelte Leistung bringen, und es gibt Paare, die sich Hardwareressourcen teilen (sie sind ein HT-Paar) und deshalb bei gleichzeitiger Belastung nicht doppelte Leistung bringen.
Zuletzt bearbeitet:
Das hast du jetzt von der Softwareseite wirklich so ausführlich und richtig erklärt, dass dir 90% des Forums schlicht nicht mehr folgen werden 
Die 25% waren eine Vereinfachung, der Wert an sich ist glaube ich kaum umstritten.
Was du dann aber als Gegenargumente bringst, geht in eine total andere Richtung und bestätigt meine Aussagen eher!
Deine "Optimierungen" auf HT laufen beide darauf hinaus, die Verschiebung von Threads auf mehr als die 4 "echten" Kerne zu unterbinden - also HT bei Misserfolg zu unterlaufen.
Sieht so Optimierung aus, wenn eine CPU mit HT plötzlich genauso schnell läuft wie ohne?
Optimierung auf die Intel-Architektur wäre dann gegeben, wenn auch ein Thread allein das 4-fach skalare Backend der CPU-Kerne voll auslastet - ohne das HT Hilfskonstrukt mit doppeltem Registersatz.
Die 25% waren eine Vereinfachung, der Wert an sich ist glaube ich kaum umstritten.
Was du dann aber als Gegenargumente bringst, geht in eine total andere Richtung und bestätigt meine Aussagen eher!
Deine "Optimierungen" auf HT laufen beide darauf hinaus, die Verschiebung von Threads auf mehr als die 4 "echten" Kerne zu unterbinden - also HT bei Misserfolg zu unterlaufen.
Sieht so Optimierung aus, wenn eine CPU mit HT plötzlich genauso schnell läuft wie ohne?
Optimierung auf die Intel-Architektur wäre dann gegeben, wenn auch ein Thread allein das 4-fach skalare Backend der CPU-Kerne voll auslastet - ohne das HT Hilfskonstrukt mit doppeltem Registersatz.
y33H@
Fleet Admiral
- Registriert
- Apr. 2006
- Beiträge
- 25.691
Praktisch alle aktuellen (Multthreading-)Spiele laufen mit SMT schneller - vor allem, wenn ein i3 mit nur zwei Kernen rechnet. BF3 läuft auf vier Kernen mit SMT auch einen Tick schneller, die Stotter-Problematik hat damit nur indirekt etwas zu tun und tritt zudem nicht bei allen auf.lead341 schrieb:Aber wie läßt sich denn nun (anschaulich) begründen, dass viele Spiele - bspw. das schon mehrfach genannte BF3 - mit HT SCHLECHTER laufen.
Ähnliche Themen
- Antworten
- 6
- Aufrufe
- 2.164
- Antworten
- 30
- Aufrufe
- 4.021
- Antworten
- 12
- Aufrufe
- 2.748
- Antworten
- 19
- Aufrufe
- 3.066