PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehr Single-Core durch Multi-Core-Zusammenschaltung?


3d
2019-05-05, 15:48:58
moin

ich habe mich gefragt ob man nicht mehr singelcore leistung erreichen könnte durch eine art serienschaltung der kerne.

viele prozesse wurden durch mehr kerne beschleunigt, aber es gibt auch viele anwendungen die nicht gut skalieren und eine hohe singelcore leistung benötigen.

wäre es technisch nicht machbar die irgendwie zusammen zu schalten?
das wäre doch ein killer-feature.
was braucht eine cpu um in spielen gut abzuschneiden?

schreiber
2019-05-05, 15:51:37
Im Prinzip macht man das schon seit Jahrzehnten. Jeder Core hat mehrere Ausführungseinheiten. Sprungvorhersagen usw. damit man Schleifen schneller abarbeiten kann.

3d
2019-05-05, 15:56:44
man muss dazu sagen dass wir im desktop bereich erst jetzt davon profitieren würden. denn erstmals werden die cpus mehr kerne haben als für ein spiel notwendig wäre.
also 8+

und wenn du von jahrzehnten sprichst, kannst du nur den server-bereich meinen oder?

schreiber
2019-05-05, 15:59:59
Nein, ich meine normale DesktopCPUs. Wie das aktuell aussieht, weiß ich nicht. Aber damals im Studium, als ich Rechnertechno hatte, war gerade der Pentium1 aktuell. Und der hatte bereits 3 Ausführungseinheiten.

Nightspider
2019-05-05, 16:06:07
Ich glaube jede popelige Smartwatch macht das schon.

PatkIllA
2019-05-05, 16:11:19
Die Stichworte sind Superskalarität (https://en.wikipedia.org/wiki/Superscalar_processor). Normalerweise in Zusammenarbeit mit Prozessor Pipeline (https://en.wikipedia.org/wiki/Instruction_pipelining) und Out-of-order execution (https://en.wikipedia.org/wiki/Out-of-order_execution).

BAGZZlash
2019-05-05, 17:37:21
ich habe mich gefragt ob man nicht mehr singelcore leistung erreichen könnte durch eine art serienschaltung der kerne.


Tatsache ist, dass die feinen Herren CPU-Ingenieure auf diese einfache Lösung bisher schlicht nicht von selbst gekommen sind. Aber nun ist die Industrie auf dem richtigen Weg: Früher hieß es immer, bei zwei aufeinander folgenden Berechnungen, z.B.


A = B * C
D = A + E


müsse für die zweite Berechnung zuerst das Ergebnis der ersten Berechnung bereitstehen (also A). Solche Berechnungen kommen häufig vor (Multiplizieren und Addieren, beispielsweise bei der Matrixmultiplikation). Dies konnte man bisher nur behelfsmäßig parallelisieren, indem man mehrere solcher Pakete gleichzeitig ausführt, aber eben nicht die Berechnungen innerhalb solcher Pakete. Krücken sind z.B. AMDs CPU-Befehl FMADD (https://www.itwissen.info/FMADD-floating-multiply-add.html) (fused multiply add) oder eigentlich auch das Aufkommen von 3D-Beschleunigern an sich: Diese waren zu Anfang reine MADD-Maschinen, konnten also auf Paketebene parallelisieren, aber eben nicht im Sinne von seriengeschalteten CPU-Kernen, die es - ehrlicherweise - damals aber auch noch gar nicht gab.

Dein Vorschlag ändert dies nun: So kann der neue C GNU Compiler (https://gcc.gnu.org/) (Version 9.2 Beta, also noch in einem experimentellen Stadium) mittels Deep Learning und IoT durchaus parallelisieren, indem A quantenheuristisch ermittelt wird. Die wissenschaftliche Zeitschrift WdW (http://www.weltderwunder.de/) hatte kürzlich darüber berichtet.

Im 9.2er-GCC aktiviert man die Methodik mittels des neuen Pragmas #pragma combine_cores(n);, wobei n die Anzahl der zusammenzulegenden Kerne ist und natürlich die Anzahl der vorhandenen Kerne auf der Zielmaschine nicht übersteigen darf. Auf manchen Systemen führt das aktuell noch zu Abstürzen, aber das bekommt man in den Griff. Bis dahin sieht man Einsatzmöglichkeiten zunächst bei supervised Industrie-4.0-Anwendungsszenarien sowie im Edge-Computing von 5G-Netzlösungen.

Tesseract
2019-05-05, 18:59:48
viele prozesse wurden durch mehr kerne beschleunigt, aber es gibt auch viele anwendungen die nicht gut skalieren und eine hohe singelcore leistung benötigen.

superscalarität (ein thread mit vielen ressourcen für maximale leichtung pro thread) haben wir im x86-consumerbreich sogar schon länger als multicore und man hat auch lange versucht dabei zu bleiben weil es für die programmierung am einfachsten ist. allerding werden fette cores sehr schnell sehr komplex weil dafür fast alles untereinander vernetzt sein muss und genau das will man mit der unterteilung des chips in mehr oder weniger unabhängige cores etwas in den griff bekommen. moderne CPUs sind bereits extrem superscalar-lastig mit nur "etwas" parallelität. das ganze noch extremer zu machen wäre zwar möglich, aber nicht wirklich sinnvoll. vielleicht sehen wir in zukunft designs die das in bestimmen sonderfällen können (z.B. für SIMD).

PatkIllA
2019-05-05, 19:15:50
Der Ansatz die Erkennung von möglichen Parallitäten in den Compiler und den Befehlssatz zu verlagern ist mit Itanium ja auch gescheitert.

BlackArchon
2019-05-05, 19:43:16
Tatsache ist, dass die feinen Herren CPU-Ingenieure auf diese einfache Lösung bisher schlicht nicht von selbst gekommen sind. Aber nun ist die Industrie auf dem richtigen Weg:
...Sehr gut geschrieben! Pass nur auf, irgendwer glaubt das hier noch, wenn er das liest. :D

3d
2019-05-05, 22:25:07
ok die sache scheint kompliziert zu sein.
leider habe ich zu wenig ahnung von der materie.

BAGZZlash
sehr interessant was du geschrieben hast.

aber du bist wieder bei parallelisierung.
ich will einfach nur A schneller berechnen können.
D interessiert erstmal nicht.

allerding werden fette cores sehr schnell sehr komplex
dafür haben sie studiert und werden gut bezahlt :-)

die komplexität ist jetzt schon unmenschlich.
so ein schaltkreis hat doch keiner mehr im kopf.
aber auf lange sicht brauchen wir einfach mehr rechenleistung pro kern.

Ganon
2019-05-05, 22:29:19
BAGZZlash
sehr interessant was du geschrieben hast.

Bevor das jetzt nicht rübergekommen ist: Er hat dich verarscht.

3d
2019-05-05, 22:35:29
echt?

das klang alles ganz serös :uponder:

BlacKi
2019-05-05, 22:45:55
könnte man einen rechenprozess auf mehrere kerne umlagern wäre es schon passiert. aber man versucht die prozesse aufzudröseln damit man sie mehreren threads zuordnen kann.

Tesseract
2019-05-05, 23:27:34
dafür haben sie studiert und werden gut bezahlt :-)

die komplexität ist jetzt schon unmenschlich.
so ein schaltkreis hat doch keiner mehr im kopf.
aber auf lange sicht brauchen wir einfach mehr rechenleistung pro kern.

es geht nicht um die leute die daran arbeiten sondern wie groß das ding am ende ist und wie hoch es sich takten lässt. wenn die zwei tandem-cores am ende so groß sind wie ein klassischer quad und der vorteil der IPC vom niedrigeren takt negiert wird macht das einfach keinen sinn.

3d
2019-05-05, 23:36:26
wenn die zwei tandem-cores am ende so groß sind wie ein klassischer quad und der vorteil der IPC vom niedrigeren takt negiert wird macht das einfach keinen sinn.

die cores sind ja schon da.
ich meine die cpus aktueller generation.
8+ kerne
bzw. 16 threads

außerdem, die ganze grafikeinheit könnte man sich auch sparen und den platz sinnvoller nutzen.

Tesseract
2019-05-05, 23:42:21
die cores sind ja schon da.
was soll das heißen?

ich meine die cpus aktueller generation.
ich auch.

außerdem, die ganze grafikeinheit könnte man sich auch sparen und den platz sinnvoller nutzen.
das hat überhaupt nichts mit der core-konfiguration zu tun.

3d
2019-05-05, 23:50:18
nein aber mit der chipgrösse
IGP ist nicht schlecht, habe ich jahrelang genutzt.
aber es nimmt einfach platz weg
https://pics.computerbase.de/8/0/0/8/6/2-1080.2119331062.jpg

die cores sind ja schon da.
was soll das heißen?

nun ja.
sehe frage aus dem ersten beitrag. anders kann ich es nicht formulieren.


wahrscheinlich ist es einfach nicht möglich wie ich es mir vorstelle.
ich meine sowas wie umgekehrtes SMT

ups: das bild sollte nicht so groß erscheinen.
die grafik nimmt übrigens so viel platz wie 4 cores

Tesseract
2019-05-06, 00:32:15
nein aber mit der chipgrösse
schon klar, aber das hat nichts mit der diskussion zu tun. wenn core A doppelt so groß ist wie core B kann man statt der iGPU doppelt so viele B wie A verbauen. ob es eine iGPU gibt oder nicht ändert nichts daran welches coredesign die fläche besser nutzt.

3d
2019-05-06, 00:37:47
es geht nicht um die leute die daran arbeiten sondern wie groß das ding am ende ist und wie hoch es sich takten lässt. wenn die zwei tandem-cores am ende so groß sind wie ein klassischer quad
du hast die grösse doch ins spiel gebracht

Korfox
2019-05-06, 07:22:08
ich meine sowas wie umgekehrtes SMT

Dazu gibt es seit Ewigkeiten Gerüchte und Überlegungen:

https://www.forum-3dcenter.org/vbulletin/showthread.php?t=304024
http://www.pcgameshardware.de/Skylake-Codename-259478/News/Hinweis-auf-inverses-Hyper-Threading-1168112/
https://www.reddit.com/r/hardware/comments/5womuy/what_ever_happened_to_reverse_smthyperthreading/

du hast die grösse doch ins spiel gebracht
Das machen Männer doch gerne...

RavenTS
2019-05-06, 13:22:26
...
wahrscheinlich ist es einfach nicht möglich wie ich es mir vorstelle.
ich meine sowas wie umgekehrtes SMT
...

Ja das hast du nun wohl richtig erkannt. Was BAGZZlash mit seinem ursprünglichen, ironisch gemeinten und mit etwas "Pseudo-Wissenschaft" in Form von gestreuten Nonsense-Links sagen wollte ist, dass das Thema durchaus etwas komplexer ist als du dir das vorstellst und du bei echtem Interesse an dem Thema dich zunächst ein wenig in die Konstruktionsweise moderner CPUs einlesen solltest ... dann dürftest du recht schnell erkennen, dass deine Idee wohl kaum bis gar nicht umzusetzen ist und dies vor allem aus ökonomischen Gründen auch wirklich nicht passieren wird.

mboeller
2019-05-06, 14:57:57
https://siliconangle.com/2016/09/09/report-intel-has-quietly-bought-chip-startup-soft-machines-for-250m/

https://techreport.com/news/29161/soft-machines-debuts-cpus-and-socs-based-on-visc-architecture

selbst daraus scheint nichts geworden zu sein.

3d
2019-05-06, 23:11:46
aber wir haben seid jahren keine singelcore verbesserung.
https://youtu.be/_l7rEP6FidE
ein i7 2600 ist grad mal 15% langsamer als ein 8700.
da muss man doch was machen.

BlacKi
2019-05-07, 05:52:26
ist halt auch unfair gebenched. und die spieleauswahl ist auch pro sandy bridge.

Demirug
2019-05-07, 08:07:22
aber wir haben seid jahren keine singelcore verbesserung.
https://youtu.be/_l7rEP6FidE
ein i7 2600 ist grad mal 15% langsamer als ein 8700.
da muss man doch was machen.

"The free lunch is over" - Herb Sutter

Pirx
2019-05-07, 08:22:29
aber wir haben seid jahren keine singelcore verbesserung.
https://youtu.be/_l7rEP6FidE
ein i7 2600 ist grad mal 15% langsamer als ein 8700.
da muss man doch was machen.
Na dann an die Front!

Der_Korken
2019-05-07, 08:30:12
aber wir haben seid jahren keine singelcore verbesserung.
https://youtu.be/_l7rEP6FidE
ein i7 2600 ist grad mal 15% langsamer als ein 8700.
da muss man doch was machen.

Es wird keine Verbesserung mehr kommen, die Singlecore-Leistung wird eher langsamer als bisher weitersteigen. Es könnte vielleicht irgendwann mal einen einzelnen Schub geben, wenn man von Silizium auf sowas wie Kohlenstoff umsteigt, weil man damit den Takt etwas anheben kann. Aber IPC-Zuwächse, wie man sie mit Conroe, Nehalem oder Sandy Bridge erlebt hat, wird es sehr wahrscheinlich nicht mehr geben.

][immy
2019-05-07, 08:35:09
Auf CPU-Seite kann man da im Augenblick nicht mehr ganz so viel machen. Klar kann man Sprungvorhersagen etc parallelisieren, oder z.B. vielleicht hier und da noch dafür sorgen, das der Code optimaler "vorläuft" und geguckt wird ob es da nicht noch was gibt was man bereits vorher parallel ausführen kann, aber letztlich ist es stark Code-Abhängig.
Hier tut sich seit einigen Jahren einiges um Parallelität in Programmiersprachen zu vereinfachen z.B. mit async-await. LEIDER gibt es da auch Javascript als inzwischen etablierte Programmiersprache was in der Richtung leider relativ contraproduktiv agiert.

Aber es tut sich grad (bzw. seit Jahren) in alles möglichen Programmiersprachen eine Menge um möglichst viele CPU-Kerne recht einfach und effizient auszulasten. Letztlich liegt es aber am Entwickler den Code wirklich effizient zu schreiben.

aber wir haben seid jahren keine singelcore verbesserung.
https://youtu.be/_l7rEP6FidE
ein i7 2600 ist grad mal 15% langsamer als ein 8700.
da muss man doch was machen.
nun, es gibt durchaus einige Hardware-Erweiterungen die in den Benches natürlich nicht wirklich zum tragen kommen. Sind zwar meist nur in hardware gegossene Codecs etc, aber auch diese können je nach Applikation eine Menge ausmachen. Beispiel von Core2quad auf core i5 3570k war der sprung für mich damals auch nicht so gigantisch. Aber unter anderem war meine CPU auch nicht mehr unter Volllast wenn ich mir ein YouTube Video angeschaut habe. Es kommt halt immer auf die Benchmarks an. Zum jetzigen Ryzen war der Sprung hingegen wieder gefühlt recht groß, was aber auch Großteils allein schon am DDR4 Speicher liegen könnte.

Ex3cut3r
2019-05-07, 13:23:32
In Anwendungen, ja da werden mehrere Cores recht gut genutzt, in Spielen sieht die Sache trotz Low Level APIs recht ernüchternd aus. Die Unterstützung in diesem Bereich geht IMo sehr langsam von statten, mal sehen ob mit den neuen Konsolen relativ schnell 4C + HT also 8 Threads Mindestanforderung werden.

PatkIllA
2019-05-07, 13:36:26
In Anwendungen, ja da werden mehrere Cores recht gut genutzt, in Spielen sieht die Sache trotz Low Level APIs recht ernüchternd aus. Die Unterstützung in diesem Bereich geht IMo sehr langsam von statten, mal sehen ob mit den neuen Konsolen relativ schnell 4C + HT also 8 Threads Mindestanforderung werden.
Ich habe oft genug die Siatuation, dass eine Anwendung einen Kern auslastet.
Die derzeitgen Konsolen haben doch schon acht Kerne.

Bei den Sachen auf der CPU kann man halt nicht so einfach wie bei der Grafik, wo man einfach die Auflösung runter dreht oder einen Effekt weglässt.
Mit zwingend 4 Kernen schließt man schon einige Kunden aus. Mit mehr als 4 ist die Mehrheit raus.
Und so groß ist der Vorteil von HT auch nicht. Das kann man auch durch etwas mehr Takt oder eine neue CPU Generation ausgleichen. Zumal Intel da ja ziemlich rumgeizt.

PatkIllA
2019-05-07, 13:39:44
*doppelpost*

Demirug
2019-05-07, 14:53:52
Die derzeitgen Konsolen haben doch schon acht Kerne.

Davon kann man aber nicht alle nutzen und die Leistung dieser Kerne ist im Vergleich zu dem was wir auf dem Desktop haben auch eher schwach.

BlacKi
2019-05-07, 15:02:16
Ich habe oft genug die Siatuation, dass eine Anwendung einen Kern auslastet.
Die derzeitgen Konsolen haben doch schon acht Kerne.

Bei den Sachen auf der CPU kann man halt nicht so einfach wie bei der Grafik, wo man einfach die Auflösung runter dreht oder einen Effekt weglässt.
Mit zwingend 4 Kernen schließt man schon einige Kunden aus. Mit mehr als 4 ist die Mehrheit raus.
Und so groß ist der Vorteil von HT auch nicht. Das kann man auch durch etwas mehr Takt oder eine neue CPU Generation ausgleichen. Zumal Intel da ja ziemlich rumgeizt.
und zwar ziemlich alte langsame kerne im vergleich zu heute. wenn die next gen mit zen architektur und 2-3 ghz kommt ist feierabend am schwachen pc mit 60hz und mit 5ghz spätestens mit 120fps. es sei denn die kommenden spiele werden alle mit 60fps kommen, aber selbst dann wird es wieder spiele geben die grausam schlecht performen werden.

Der_Korken
2019-05-07, 22:27:33
und zwar ziemlich alte langsame kerne im vergleich zu heute. wenn die next gen mit zen architektur und 2-3 ghz kommt ist feierabend am schwachen pc mit 60hz und mit 5ghz spätestens mit 120fps. es sei denn die kommenden spiele werden alle mit 60fps kommen, aber selbst dann wird es wieder spiele geben die grausam schlecht performen werden.

Das kann noch lustig werden, wenn die Konsolen plötzlich so einen Riesensprung bei der Singlethread-Leistung machen. Um stabile 30fps zu erreichen, muss dann weit weniger optimiert werden. Mit 100fps werden solche Spiele dann auf keinem Rechner der Welt laufen.

3d
2019-07-09, 07:22:54
normalerweise müsste man für spiele eine extra einheit haben, oder mehrere.
das ist doch irgendwie der wichtigste benchmark im desktop bereich.

zur not die caches vervierfachen, und zwar alle.
ist das nicht der einfachste weg für mehr performance?

oder sie könnten es sich einfach machen und die TDP auf grafikkarten niveau hoch jubeln.
die geben ihren grafikkarten 250W und die cpus müssen mit 10W pro kern auskommen.
ist doch ungerecht :rolleyes:

Das kann noch lustig werden, wenn die Konsolen plötzlich so einen Riesensprung bei der Singlethread-Leistung machen.
die ps5 soll wie berichtet auch ein Ryzen drin haben.
konsolen werden auf jeden fall in der grafikleistung extrem zulegen.
mich würde interessieren welche unterschiede eine konsolen cpu zu einem desktop cpu hat.

#44
2019-07-09, 07:29:25
Wenn dich das Thema interessiert, solltest du dich mal mit Parallelisierung und den theoretischen Ansätzen dahinter beschäftigen.

Dann verstehst du, warum diese Dinge so sind, wie sie sind.

3d
2019-07-09, 07:37:08
meinst du mich?

ja interessiert sehr, aber es ist zu komplex und zu mühsam für mich zum lesen.
ich hab kurz reingeschaut und mir waren die grundlagen der computersprache und die rechen algorithmen schon zu viel des guten.

respekt an die ITler die das im kopf haben.
der umfang und die komplexität sind wirklich unmenschlich.

ups
ich dachte das wäre der RYzen 3000 thread

Benutzername
2019-07-09, 14:20:01
Nein, ich meine normale DesktopCPUs. Wie das aktuell aussieht, weiß ich nicht. Aber damals im Studium, als ich Rechnertechno hatte, war gerade der Pentium1 aktuell. Und der hatte bereits 3 Ausführungseinheiten.

Zu Pentium1 Zeiten gab es ja auch schon MIPS, DEC Alpha, paar obskure Vektor CPUs von NEC, POWER und POWERPC,... die alle schon Sprungvorhersage und parallele Ausführung machten. x86 hinkt eigentlich immer ziemlich hinterher. Aber keine Ahnung welcher Prozessor der erste mit Hyperthreading/SMT oder ähnlichem war. vielleicht irgendein Großrechner aus den Siebzigern?

-------------------------------------------
Ich glaube jede popelige Smartwatch macht das schon.

Smartwatches sind gar nicht so popelig von der CPU Techhnik her betrachtet. Vor ,kurzem noch Supercomputer, heute spielen wir Candy Crush und posten Katzenphotos auf Fatzbuch mit der Rechenleistung und Technik. :freak:

Benutzername
2019-07-09, 14:25:15
Sehr gut geschrieben! Pass nur auf, irgendwer glaubt das hier noch, wenn er das liest. :D

"Industrie 4.0" und "IoT" sind bullshit flags. :wink:


Aber ein bisschen unfair, jemandem der wirkich Interesse zeigt, aber eben nur ein sehr begrenztes Wissen hat, mit Sarkasmus zu kommen. Ist doch gut, daß @3d sich seine Gedanken macht und dann nachfragt. besodneres letzteres ist wichtig um etwas zu lernen.

Benutzername
2019-07-09, 14:27:58
Es wird keine Verbesserung mehr kommen, die Singlecore-Leistung wird eher langsamer als bisher weitersteigen. Es könnte vielleicht irgendwann mal einen einzelnen Schub geben, wenn man von Silizium auf sowas wie Kohlenstoff umsteigt, weil man damit den Takt etwas anheben kann. Aber IPC-Zuwächse, wie man sie mit Conroe, Nehalem oder Sandy Bridge erlebt hat, wird es sehr wahrscheinlich nicht mehr geben.

Ich glaube wir haben das Ende von Siliziumtransistoren so ziemlich erreicht. Aber bis wohin Kohlenstoff oder andere Materialien oder sogar Licht geschaltete Transistoren gehen werden? Keine Ahnung.