CPU-Test

Igelpc

Cadet 3rd Year
Registriert
Mai 2013
Beiträge
37
Habe eine Software, die ich auf die Nutzung eines virtuellen Kerns/Threads (HT eingeschaltet) begrenzen kann. Die Software lastet den Thread laut Taskmanager zu 100% aus.

Wie sollte sich nun die Performance dieser Software verhalten, wenn ich nun hingehe und die übrigen 7 (bei Quad-Core CPUs) bzw. die übrigen 11 Threads (bei Hexacore-CPUs) ebenfalls zu 100% auslaste? Betriebssystem: Windows 7, 64 bit. Turbomodus ausgeschaltet.

Das habe ich getestet und bei unterschiedlichen Prozessortypen (980X und 4770K) sehr unterschiedliche Ergebnisse erhalten, die ich mir nicht erklären kann.
Ich lasse aber zuerst einmal die Experten (ihr) zu Wort kommen, was man theoretisch erwarten würde.
 
Zuletzt bearbeitet:
Hä?
Wenn die Software vom Takt proftiert wirds auch net besser oder?
 
Was willst du ??? Ich verstehe nur Bahnhof
 
geht mir auch so , te bitte schreib deutsch...
 
Wenn du wirklich die Mutlithread Leistung gegen die Singlethread Leistung vergleichen willst, solltest du den Turbo ausschalten. Der 4770K hat ein wesentlich größeres Turbo Fenster als der 980X, dadurch wird das Ergebnis wohl stark verzerrt.
 
Also wenn Einspurig und Stau, oder 8-spurig und Stau. Man kommt nicht vorwärts.

Das nur als plakatives Beispiel. Genau genommen ist die Auslastung ja nur ungefähr, da einfach bestimmte Programme ablaufen und wenn es noch weitere Aufgaben gibt, wird halt weiter gerechnet. Je Besser die Software geschrieben ist, um so besser Skaliert sie mit dem System und der Auslastung.

Dh. man kann auch bei 100% Auslastung noch arbeiten.

lg
fire
 
Auf jeden Fall wird sie langsamer, würde ich vermuten.
Und das ggf. auf dem Rechner mit HT noch etwas stärker.

Grund:
Der Verwaltungsoverhead, den das Betriebssystem benötigt um den ganzen laufenden Krempel zu verwalten.
Und der wäre theoretisch bei 8 Threads (wenn wirklich alles zu 100% ausgelastet ist) eben größer als bei 4 Kernen ohne HT.
 
Wenn die Anwendung einen Kern zu 100% auslastest, dann macht sie das bei 8 oder 12 Kernen eben nur zu 1/8 oder ein 1/12.

Ein Kern, 100% CPU Last im Taskmanager.

8 Kerne = 12.5 % Last.

12 Kerne = 8,3 % Last.

Mit etwas Abweichungen. Weil eben durchaus die Last ständig verteilt wird auf die Kerne. Und der Verwaltungsoverhead.

Das gilt natürlich nur Pi mal Daumen. Da das Thema erheblich komplexer ist.
 
Zuletzt bearbeitet:
Igelpc schrieb:
Die Software lastet den Kern laut Taskmanager zu 100% aus.

100% sind nicht gleich 100%. Es kommt drauf an was deine Software genau macht, der Taskmanager zeigt dir nur, dass die CPU/der Kern/die HT-Einheit etwas tut - aber nicht was. Ohne zusätzliche Infos kann man höchstens erwarten, dass die Software mit zusätzlicher Last auf der CPU kaum schneller rechnet als vorher, und nicht mal das trifft immer zu...

edit: Die Infos die man für sowas braucht sind Verhältnis von floating point zu integer load, ob der Code vektorisiert ist, Speicher- und Cacheverhalten, etc...
 
Zuletzt bearbeitet:
@ Der Baya: Ja, ich hätte auch erwartet, dass die Geschwindigkeit gleich bleibt (oder vielleicht leicht absinkt). Tut sie aber bei beiden Prozessoren absolut nicht (das Programm zeigt selbst die Rechengeschwindigkeit an, Berechnungen pro Sekunde). Die beiden CPUs verhalten sich bei dem gleichen Test auch noch völlig unterschiedlich, die eine profitiert davon, wenn nur 1 Thread belastet und bei der anderen CPU sinkt die Leistung extrem ab.

@h00bi: Den Turbomodus habe ich zu Testzwecken ausgeschaltet, der macht meinen Test ja nur noch unnötigt kompliziert :)

@ hamju63: Beide Prozessoren laufen mit HT

@Cordless: Habe die Software leider nicht selber geschrieben, kann da also keine genaueren Details angeben. Wodurch könnte die Software denn schneller laufen, wenn man die anderen Threads mit anderen Aufgaben "beschäftigt"? Dies trifft bei einem der beiden genannten Prozessoren tatsächlich zu.

@ Andere: Es werden nur Single-Thread-Leistungen miteinander verglichen. Es geht darum, ob sich etwas ändert, wenn man die übrigen Threads belastet. Mit HT OFF ändert sich nicht viel, aber mit HT ON schon (und zwar sehr deutlich).
 
Zuletzt bearbeitet:
Ein paar Informationen mehr wären viel hilfreicher, als zu sagen "macht mal", denn sonst kommt nur Müll raus.
- Software-Name?
- Takt der CPUs?
- ...

1.) Allgemein kann man sagen, dass mit jedem weiteren Kern, die Leistung nur noch um ca 95% steigt - Verwaltungsaufwand, etc., ...
2.) SMT (der Bereich davon) kann ca. 1/3 mehr Leistung spendieren - Daher ist die Taskmanager-Anzeige totaler Quatsch, denn dieser teilt nur die 100% durch die Anzahl der möglichen Threads. ( Bei 4770K: ) Richtig müsste es heißen, realer Kern voll ausgelastet = 18,75% , virtueller Kern voll ausgelastet 6,25%. Soweit zur Theorie. In der Praxis kann man nicht die virtuellen Kerne anwählen. Würde man das versuchen (mal angenommen mit Erfolg), dann würden auch die Bereiche, die von beiden Threads genutzt werden, in Aktion treten und somit zur Leistung beitragen und somit letztendlich wieder einen vollwertigen realen Kern ergeben.
3.) ... Ich höre aber hier lieber auf, da es scheinbar jetzt schon deinen (und vielleicht bei vieler anderer Usern im Forum) den Horizont übersteigt, da es kein kleines einfaches Thema ist. Kannst Dich ja mal einlesen, wärend die CPU getestet werden.

Hier mal die "Leistungssteigernden Werte" (Verhältnis Singlecore - Multicore bei sonst identischen Bedingungen) im Überblick:
Kerne
1 = 100%
1+SMT = 133%
2 = 195%
2+SMT = 260%
...
4+SMT = 494%
...
6+SMT = 706%
...
15+SMT = 1431% (Yvi-Bridge EX)

Wenn Du also wirklich so eine tolle Software hast, die vielleicht noch selber geschrieben ist, dann weißt Du jetzt, wie Sie skalieren muss. Macht sie das nicht, gibt es bestimmt mehrere "Flaschenhälse" (RAM, I/O-Schnittstellen, ...) die es unterbinden, oder die Software ist einfach schlecht programmiert. Kannst Dir ja mal Cinebench R11.5 ansehen, das skalliert schon recht gut, da kannste dann die "falsch funktionierende" CPU :) entlarven.
 
Zuletzt bearbeitet:
Es ist eine Schachsoftware. Wie sie skaliert ist für den Test eigentlich völlig irrelevant, da ich ja für den Test eingestellt habe, dass Sie z.B. beim 4770K @ 4GHz maximal 1 (von 8) Threads benutzen darf. Der Taskmanager zeigt an, was BlubbsDE geschrieben hat. Wenn ich nun beim 4770K die restlichen Kerne mit einer anderen Software belaste (oder auch nur einen Teil davon), dann sinkt die Leistung dieser auf einen Thread begrenzten Software auf knapp die Hälfte. Beim 980X @ 3,33 GHz hingegen ist die Software unglaublich langsam, wenn nur 1 Thread belastet wird. Als wäre der Prozessor am schlafen. Erst wenn ich die übrigens Threads belaste (egal womit) erwacht der Prozessor aus dem Winterschlaf und auch die Schachsoftware (weiterhin auf einem Thread laufend) läuft deutlich schneller (etwa Faktor 5 schneller).
 
Geht den auf dem 980X auch wirklich der Takt hoch?
Würde Testweise mal einstellen, dass die CPU immer mit 100% Takt arbeitet.

Das die Leistung einbricht, könnte an der Machart von HT liegen, das sich 2 Threads einen Core "Teilen". Bei guter Programmierung gewinnt man durch HT keine Leistung. Wenn dann verschiedene Thread auf dem gleichen Core laufen verliert man die Leistung, weil am Effektiv nur noch einen halben Core nutzen kann. Es kann sein das das OS je nach Version 7 Konfiguration / CPU ein andere Scheduling vornimmt.
Ich bitte zu beachten, dass das eine ganz primitive Forumulierung des Sachveraltes um HT darstellt. Zu mehr hab ich im Büro keine Zeit.
 
Das was BlubbsDE über den Taskmanager geschrieben hat ist schon richtig, deshalb sagte ich ja, dass der Taskmanager nicht zwischen virtuell und real unterscheidet und einfach die 100% teilt. Richtig berechnet/angezeigt, müsste es aber so gemacht werden, wie es bei mir steht, aber Microsoft ist bis heute dazu nicht in der Lage.
Schachsoftwäre ist normalerweise auf Multicore optimiert (sollte es sein), damit die KI den besseren Zug schneller findet. Nach den typischen Tree-Prinzip.

Stelle mal alle CPUs auf gleichen Takt und teste.
Stelle mal die Cores bis auf einem (0 geht ja nicht) im UEFI auf "Disabled", dann bootest Du z.B. mit einem 4770K-Singlecore. Das könnte ungemein helfen, da nicht mehr die Verwaltung/Fehlerquelle so hoch sind/ist.
Stelle mal im UEFI SMT aus, dann dürfte das nicht mehr passieren, was bis jetzt passiert, Kenne es selber von einem Benchmark, den ich selber programmierte, der zwischen einem QX6700 und einem i7-3770T komplett in die andere Richtung ging, als er sollte.

Wie misst Du den Faktor 5? (Gefühlt/Zeit/...)
Wo stellt Du die Singlecore-Variante ein? (Schachprogramm/Taskmanager und gibt es da Unterschiede?)
Benutzt Du CPU-Z um nebenbei den Takt auszulesen?
Was sagt z.B. Cinebench oder andere Benchmarks für Werte, wenn die auf Singlecore laufen, verhalten sich da beide CPUs genauso?
Ist das UEFI aktuell?

Es kann gut sein, das die Pipeline pausenlos geleert wird/werden muss und daher die Leistung einbricht, das ist mit der wachsenden Anzahl an Kernen und der Sprungvorhersage nämlich so ein Problem. z.B. "wenn Adresse/Daten nicht mehr stimmt".
Unter komplett sinnfreien Möglichlichkeiten kann es auch liegen, z.B. Temperatur zu hoch; eine Endlosschleife im Programm und der rein wichtige rechnende Code macht nicht flüssig weiter, da er blockiert wird; zu wenig RAM? (ist mehr beim 980X?); ... habe leider schon viel erlebt, auch einiges was immer noch unerklärlich bleibt. ... Ach Fernwartung ist so kompliziert, daher muss man erstmal es soweit eingrenzen wie es geht, z.B. ob andere Programme sich genauso verhalten.
 
Also offenbar hat nur der 980X ein Problem, da die Single-Thread-Leistung extrem einbricht, wenn nur ein Thread belastet wird (dass beim 4770K in diesem Fall die Leistung steigt, stört mich jetzt nicht :) ).
Bei meinem 980X-Rechner kann ich aber im BIOS kaum etwas einstellen, das BIOS ist etwas kastriert. Für die CPU kann ich im BIOS nur HT ein- oder ausschalten und ich kann den Turbomodus ein- oder ausschalten. Komisch ist, dass immer 3,33 GHz von CPU-Z angezeigt werden, egal was ich mache (idle, 1 Kern Vollast, 2 Kerne Vollast, alle Kerne Volllast). Könnte es sein, dass CPU-Z bei dieser CPU keine korrekten Werte anzeigt?
Die Rechengeschwindigkeit misst das Schachprogramm permanent. Ich kann die Geschwindigkeit auch über die Zeit vergleichen, die das Programm benötigt, um eine bestimmtes Ergebnis zu erreichen. Da ich keine Cores im BIOS abschalten kann, kann ich auch CINEBENCH nicht im Single-Core-Modus laufen lassen. Im Multicoremodus liefert Cinebench zu erwartende Ergebnisse, habe ich gerade getestet.
Die Temperaturen sind im grünen Bereich (maximal 55 Grad bei Volllast aller Kerne und nach längerer Zeit).
 
Zuletzt bearbeitet:
Ich würde mit einem 980X keine Benches mit nur einem Core machen. Im xtremesystems.org forum gab es Leute, die das gemacht haben und anschließend eine defekte CPU hatten. Selbst bei Stock CPU und nur einer aktiven Core (im Bios eingestellt) ist die CPU verreckt.
Kannst ja mal in dem Forum suchen. War vor ca. 2 Jahren.

Habe es gefunden: Schaust Du hier.
 
Zuletzt bearbeitet:
@MikelMolto das ist schon fast unglaublich. Aber da muss es nicht mit rechten Dingen zugegangen sein, oder es war einfach nur Pech. Zudem arbeit der TE weder mit LN2 noch hat er mit der CPU OC betrieben.

Du kannst mit Cinebench Singelcore testen, indem Du unter DATEI auf ERWEITETER TEST gehst. Alternativ, aber nicht so gut, geht es über den Taskmanager über Reiter PROZESSE, dann Kontextmenü-Eintrag bei Cinebench ZUGEHÖRIGKEIT FESTLEGEN.
Abgesehen davon, sehe zu, das Du ein BIOS/UEFI-Update machen kannst, schreibe mal alles, was Du über das Motherboard hast. CPU-Z liest den Takt eigentlich nicht falsch aus. EIST und Turbo-Boost als Einträge sollte es eigentlich geben, genauso wie C1E.

EDIT:
@MikelMolto (unter mir)
Habe es nur ganz grob überflogen. Entschuldige. Jedenfalls darf soetwas nie/nicht passieren.

@TE
Warum benutzt man eigentlich eine 1000€ CPU auf einem Motherboard, der die CPU scheinbar nicht richtig supportet? Denn so abgespeckt kann das UEFI/BIOS garnicht sein, außer es ist ein Fertig PC gewesen oder ein sehr sehr günstiges oder halbdefektes Motherboard von Ebay und Co.
 
Zuletzt bearbeitet: (Nachtrag)
@Blue Cube
Lesen bildet. Dort gab es auch defekte CPU's wenn die nicht übertaktet waren (hatte ich aber oben schon geschrieben).
 
@ Blue Cube: Die 980X-CPU befindet sich in einem D900f von Clevo (portable Workstation bzw. Notebook).
Ich werde heute Abend mal ein BIOS-Update durchführen. Habe gerade keine Rohlinge herumliegen, aber mein neuer USB-Stick sollte dafür auch geeignet sein.

Edit: Gestern Abend leider keine Zeit gehabt... Bin auch noch nicht sicher, welche Version ich installieren sollte. Im Internet finden sich auch noch "unlocked-Versionen". An anderer Stelle steht, dass eine BIOS- Version von 2010 (ist das die aktuellste?) nicht funktionieren soll.
 
Zuletzt bearbeitet:
Sapphire Forum
Zurück
Oben