Threads und Cores bei CPUs

DerPolacke

PC-Selbstbauer(in)
Hallo,
hab da so eine interessante Frage.
Zumindest für mich interessant.

Wieso hat ein Kern nur max zwei Threads?
Zb der i3 hat zwei Kerne und zwei Threads, wieso sind da keine sechs oder acht Threads?
Ist das von der Fertigung nicht möglich oder wird da keine Erhöhung der Leistung zusehen sein?
 
Das ist deswegen so, weil es im normalen Consumerbereich zu teuer wäre es höher parallel zu machen. Technisch ist das kein Problem (IBM Power-PCs / Server-CPUs können sehr viel mehr Threads pro Kern, mindestens vier) aber für die Zielgruppe Heimanwender ist der Nutzen viel zu gering und die Kosten viel zu hoch.

Keiner würde den 5-fachen Preis für ne CPU zahlen nur weil die 4 statt 2 Threads pro Kern kann. Sowas hat nur im Serverbereich einen Sinn (da durch sowas die Effizienz gesteigert wird und man den Mehrpreis bei großen Rechenzentren schnell wieder über Energiekosten reinholt).
 
Das ist halt die Architektur. Wenn man mehr Threads pro Kern verarbeiten will, muss man die Architektur entsprechend anpassen. Da man aber nicht unbegrenzt Fläche zur Verfügung hat und auch die Physik dem Ganzen Grenzen setzt, kann man das nicht beliebig umsetzen. Beim Xeon Phi beispielsweise hat jeder Kern 4 Threads, dafür ist die Singlethread-Leistung für die Tonne (ca. Pentium 3 @ 1 GHz). Man muss da also Kompromisse machen.
 
Hier wird ganz schön viel durcheinandergebracht.

Ein i3 hat 2 Rechenkerne. (Fließbänder)
Durch HT meldet er aber 4 Ausführungseinheiten an das Betriebssystem.

Was die CPU macht, ist in Rechenpausen für jedes dieser Fließbänder Arbeit für ein "nicht vorhandenes" Fließband abzuarbeiten. (weil es sonst still stehen würde)
Das ist nicht ganz so schnell, als gäbe es 4 echte (wie im i5 für den Desktop) aber doch deutlich schneller, als würde man diese Arbeitstakte verschenken.

Wenn das Betriebssystem mehr Aufgaben hat, laufen diese Threads nacheinander auf den echten oder gedachten Fließbändern durch. Tatsächlich laufen ständig hunderte Threads im PC gleichzeitig. Die meisten davon sind aber pausiert.

Nur 2 können tatsächlich zur gleichen Zeit real gerechnet werden und aus Sicht des Betriebssystems kann es 4 gleichzeitig beauftragen.
Was die CPU damit tatsächlich macht, weiß das BS nicht. Es denkt, es gäbe 4 Kerne.

Es ergibt einfach keinen Sinn, mehr Threads an das BS zu melden, weil es gar nicht so viele Leertakte mehr gibt, um dort Arbeit reinzupacken.
Die eine ALU arbeitet streng sequentiell. Ob ich nun 3x oder 4x HT "melde" oder die schlafenden Threads kurz aufwecke, auf den Kerne packen und wieder schlafen schicke, ändert nichts an der Arbeitsgeschwindigkeit, macht aber den Prozessor beliebig kompliziert in der Konstruktion.
Nur das eine mal macht es die CPU intern und das andere mal das Betriebssystem.
 
Hier wird ganz schön viel durcheinandergebracht.

Ein i3 hat 2 Rechenkerne. (Fließbänder)
Durch HT meldet er aber 4 Ausführungseinheiten an das Betriebssystem.

Was die CPU macht, ist in Rechenpausen für jedes dieser Fließbänder Arbeit für ein "nicht vorhandenes" Fließband abzuarbeiten. (weil es sonst still stehen würde)
Das ist nicht ganz so schnell, als gäbe es 4 echte (wie im i5 für den Desktop) aber doch deutlich schneller, als würde man diese Arbeitstakte verschenken.

Wenn das Betriebssystem mehr Aufgaben hat, laufen diese Threads nacheinander auf den echten oder gedachten Fließbändern durch. Tatsächlich laufen ständig hunderte Threads im PC gleichzeitig. Die meisten davon sind aber pausiert.

Nur 2 können tatsächlich zur gleichen Zeit real gerechnet werden und aus Sicht des Betriebssystems kann es 4 gleichzeitig beauftragen.
Was die CPU damit tatsächlich macht, weiß das BS nicht. Es denkt, es gäbe 4 Kerne.

Es ergibt einfach keinen Sinn, mehr Threads an das BS zu melden, weil es gar nicht so viele Leertakte mehr gibt, um dort Arbeit reinzupacken.
Die eine ALU arbeitet streng sequentiell. Ob ich nun 3x oder 4x HT "melde" oder die schlafenden Threads kurz aufwecke, auf den Kerne packen und wieder schlafen schicke, ändert nichts an der Arbeitsgeschwindigkeit, macht aber den Prozessor beliebig kompliziert in der Konstruktion.
Nur das eine mal macht es die CPU intern und das andere mal das Betriebssystem.

Ich frage weil ich meinen i7 930 mit einem i3 4160 verglichen hab und der i7 930 ist nur ein Tick schneller. Ich weiß nicht ob ich für Grafikbearbeitung einen i3 4160 nehmen soll oder einen Xeon E3-1230 v3.

Ich werde hauptsächlich Google Sketchup benutzen.

Es wird eine GTX960 verbaut.
 
Ich frage weil ich meinen i7 930 mit einem i3 4160 verglichen hab und der i7 930 ist nur ein Tick schneller. Ich weiß nicht ob ich für Grafikbearbeitung einen i3 4160 nehmen soll oder einen Xeon E3-1230 v3.

Ich werde hauptsächlich Google Sketchup benutzen.

Es wird eine GTX960 verbaut.

Zum einen ist da der Generationenunterschied drin, zum anderen bringt HT nur ~ 30% mehr, da es ja keine echten Kerne sind, sondern nur zwischengeschobene Instruktionen
 
Beim Rendern sind 20% drinne pro Kern.
Intel lässt einfach nicht ausgelastete Hardware-Einheiten (man kann scheinbar einen CPU-Kern nur schlecht zu 100% auslasten) an ausstehenden Aufgaben arbeiten.
 
Bringt HT irgendwas bei Google Sketchup, Blender, 3Dmax?
Ja, da diese nahezu 1:1 auf Kerne skalieren. Daher hast du mit dem (Consumer) Hyperthreading ca 20-30% mehr Leistung als ohne.

EDIT: Da du ja anscheindend eine neue CPU kaufen willst, wäre beim Rendern ein 6 Kerner (aka i7 5820K) von deutlichem Vorteil -> Rendern (Video und Bild) lastet mehrere Kerne nahezu optimal aus, daher bringt es in dem Bereich auch etwas wie 12 Kerner CPU's zu haben. Für "Normalos" wie uns ist aber ein nativer 6 Kerner das höchste der Gefühle. Seit ich meinen 4Kerner i5 auf den 6Kerner Xeon aufgerüstet hab, hab ich aufjedenfall einen ordentlichen Boost in Videoverarbeitung und beim Rendern gespürt ;)
 
Bringt HT irgendwas bei Google Sketchup, Blender, 3Dmax?

Wenn dem nicht so wäre wäre dein alter i7 930 wohl kaum schneller als ein Haswell ohne SMT. ;-)

Die meisten solcher Programme können quasi beliebig viele Threads auslasten wobei aber der nutzen von immer mehr Threads immer weniger wird (also wo 8 Threads noch fast doppelt so schnell wie 4 sind sind 16 nur noch vielleicht 30% schneller als 8 usw.).
Wenns um Videokram geht hab ich jedenfalls nicht das geringste Problem damit meine 16 Threads voll auszulasten... dafür ist die CPU ja auch da. ;)
 
Ich frage weil ich meinen i7 930 mit einem i3 4160 verglichen hab und der i7 930 ist nur ein Tick schneller. Ich weiß nicht ob ich für Grafikbearbeitung einen i3 4160 nehmen soll oder einen Xeon E3-1230 v3.

Das liegt schlicht daran, dass dein i7 930 einfach schon uralt ist und der i3 neu ist.
Dazwischen liegen einige Jahre Entwicklungszeit.
 
Danke sehr für die Antworten, ich würde eher zu einem Xeon greifen da ich ein 1150 Mainboard benutzen werde.

Wozu sind diese Intel Xeon Phi Gpus?
Ist das schneller als ein Hexa core von Intel?
 
Zuletzt bearbeitet:
Wozu sind diese Intel Xeon Phi Gpus?
Ist das schneller als ein Hexa core von Intel?

Das sind völlig andere Aufgabengebiete und nicht vergleichbar. Ist wie einen großen Traktor mit nem F1-Wagen zu vergleichen. Beide haben 600 PS aber die Aufgabengebiete sind andere.

Oder so gesagt: Ja, ein neuer Xeon Phi ist sehr viel schneller als ein 5820K oder 5960X (etwa Faktor 10-20 was die reine DP-Rechenleistung angeht) - du wirst aber keine 240 Threads sinnvoll benutzen können. ;-)
 
Wozu sind diese Intel Xeon Phi Gpus?
Ist das schneller als ein Hexa core von Intel?
Der Xeon Phi ist ein sogenannter Coprozessor und verfolgt ein ähnliches Konzept wie GPU fürs Computing (Nvidia Tesla usw.). Anders als GPUs basiert der Phi aber auf x86 Technik (modifiziertes Pentium-Design), da läuft sogar ein kleines Linux-OS auf der Karte. Bei passenden Anwendungen hängt die Kiste schon relativ dicke CPUs deutlich ab, das ist aber ähnlich wie bei GPUs. Im Rahmen meiner Masterarbeit habe ich mich mit der ersten Generation des Xeon Phi (Knights Corner) befasst, bei ausreichender Auslastung konnte ein Xeon Phi 5110P (240 Threads) schon zwei Xeon E5-2670v2 (Octacores, 32 Threads) abhängen. Aber wie gesagt, das hängt stark von der Anwendung ab.
 
Der Xeon Phi ist ein sogenannter Coprozessor und verfolgt ein ähnliches Konzept wie GPU fürs Computing (Nvidia Tesla usw.). Anders als GPUs basiert der Phi aber auf x86 Technik (modifiziertes Pentium-Design), da läuft sogar ein kleines Linux-OS auf der Karte. Bei passenden Anwendungen hängt die Kiste schon relativ dicke CPUs deutlich ab, das ist aber ähnlich wie bei GPUs. Im Rahmen meiner Masterarbeit habe ich mich mit der ersten Generation des Xeon Phi (Knights Corner) befasst, bei ausreichender Auslastung konnte ein Xeon Phi 5110P (240 Threads) schon zwei Xeon E5-2670v2 (Octacores, 32 Threads) abhängen. Aber wie gesagt, das hängt stark von der Anwendung ab.

Funktioniert das wie eine GPU oder wie eine CPU? Kann ich damit Grafik rendern usw? Zb bei Google Sketchup oder Blender?
 
Das Ding kann theoretisch alles (da es x86-Kerne sind), ich kann mir aber nicht vorstellen dass deine Programme da auch nur die leiseste Ahnung haben, was ein Phi-Coprozessor ist. :ugly:

Hier gehts um professionelle Hardware. Da brauchts spezielle Anwendungen und kernels die genau auf die verwendete hardware ausgelegt sind und falls nötig eben neu so programmiert werden. Solche Xeon Phis werden in großen Mengen in rechenzentren eingesetzt und arbeiten Programme ab, die von eigens angestellten Programmierern genau dafür effizient geschrieben werden. Mit nem popligen 3dsmax oder google hat das nix mehr zu tun.
 
Funktioniert das wie eine GPU oder wie eine CPU? Kann ich damit Grafik rendern usw? Zb bei Google Sketchup oder Blender?
Theoretisch ja, praktisch nein weil die Softwareunterstützung fehlt. Verglichen mit dem klassischen GPU Computing ist der Phi auch noch relativ neu. Ich bezweifel allerdings, dass da noch eine flächendeckende Unterstützung kommt, dafür ist das Teil zu speziell. Der Stückpreis liegt für den 5110P bei aktuell knapp 2500 €, da bekommt man schon einen ziemlich gut ausgestatteten PC für.
 
Die Xeon Phi sind für dich nicht interessant. Das maximale der Gefühle sollte ein i7 5960K sein, der Preislich auch schon übel ist. Die Xeons werden auch dann und wann zum Rendern genutzt, aber da biste auch mal gut 2.5K€ nur für die CPU los - Und du kannst damit auch NUR Rendern, da der Takt sehr gering ist
 
Zurück