News Intel AVX10, AVX10.2 und APX: Neue Instruktionen für mehr Leistung auf P- und E-Cores

BxBender schrieb:
Immerhin wissen wir ja, in dem einen Syntetiktest schmitzt so ein Prozessor förmlich vor sich hin und taktet deutlich niedriger, sobald AVX aktiviert wird.
Diese Aussage ist falsch :) Bitte nicht AVX / AVX2 mit AVX512 verwechseln. Die beiden ersteren sind sehr sinnvolle Erweiterungen / Modernisierungen von SSE.
latiose88 schrieb:
Instruktionen sind soweit ich weiß Beschleuniger. Aber wenn die dann verpuffen, dann wird ne gewisse Einheit nicht belastet.
Instruktionen sind keine Beschleuniger - es sind Maschinenanweisungen die deine CPU ausführt. Ob diese "beschleunigen" hängt ganz von deren Implementation ab. Zu AVX selber gibt es den Intrinsics Guide, dort sieht man angegeben bei welcher Architektur die jeweilige Instruktion was bring (Latency / Throughput): Intel Intrinsics
Wird durch die Ausführung dieser Instruktion aus hitzetechnischen Gründen (zB grobe Lastumschaltung wegen sehr breiten Registern --> ZMM Register mit 512Bit), der Takt gedrosselt, kann es sein, dass die Performance darunter leidet. Das heisst aber nicht, dass die Einheiten nicht belastet werden. Man erledigt zwar parallel mehr, aber die "einzelne Operation" ist langsamer.

Rechenbsp:

Gegeben: Man hat 512 Bytes, also 128 Integerwerte mit jeweils 32bit.
Nun möchte man auf jeden der Integerwerte eine Operation uP darauf anwenden. Wenn man uP 128 Mal ausführt, kommt man zum Ergebnis.

Vorausgesetzt man hat die Operation uP in einer Vektoreinheit (AVX) umgesetzt, so kann man die selbe Operation auf mehreren Daten gleichzeitig anwenden. Beim Datentyp Int32 wären dies mit
AVX (128Bit Register) --> 4 uP gleichzeitig
AVX2 (256Bit Register) --> 8 uP gleichzeitig
AVX512 (512Bit Register) --> 16 uP gleichzeitig

In einer perfekten Welt haben wir also gegenüber der Operation uP, welche 128 Mal ausgeführt wird, den Speedup von 4 (32x ausgeführt), 8 (16x ausgeführt) oder mit AVX512 16x (8x ausgeführt).

Nur leider kann es sein, dass der Takt sinkt - bsp AVX512 --> beim ersten mal von 8 haben wir vollen Takt, 2 bis 5 nur halben Takt und danach nur noch einen achtel Takt. Die Performance sinkt also unter die Ausführung mit AVX2, welches den Takt halten kann.

DevPandi schrieb:
Wenn Intel es richtig macht, dann kann die CPU auch mit den 512-Bit-Modi umgehen und splittet diese dann ggf. auf beide AVX-Einheiten oder führt sie in zwei Takten aus.
Ist bei der Zen 4 AMD Implementation im Moment so :)

Und bei RISC-V geht es auch in die Richtung - die Instruktion ist unabhängig von der Hardware. Wenn die Hardware die Einheiten nicht hat, wird es halt im Loop ausgeführt. Die Komplexität wandert dann aber teilweise in Richtung Compiler.
 
  • Gefällt mir
Reaktionen: RogueSix
whynot? schrieb:
Mir fehlt hier der technische Background um das fundiert beurteilen zu können aber in der Twitter Community werden diese Änderungen sehr positiv aufgenommen.

Das ist klar. Da Intel seine beschnittenen E Cores näher an die P Cores bringt. Und es so zukünftig einfacher wird für Entwickler...
 
Mal ganz blöde Frage: Die CPU unterstützt neue Befehle. Um die zu verwenden, müssen doch diese auch im Maschinencode eines Programms enthalten sein, richtig? Sprich es bedarf also eines Compilers der es auch sinnvoll einbaut und einer Neucompilation eines Programm, richtig? Das heißt ja im Umkehrschluss, alles was ich heute installiert habe profitiert nicht, solang es nicht ein entsprechendes update gibt.
 
@Paik
Im Großen ja.
Im Detail kann aber ein Programm auch Bibliotheken nutzen die u.a. das Betriebssystem anbietet. Wenn diese aktualisiert werden, das eigentliche Programm aber nicht, kann das bereits helfen.
 
ähm naja ne wunder kann man nicht erwarten.So erzeugte ein Programm unter Windows 11 Problem aber bei Windows 10 nicht.Das 11er ist ja neuer und bringt auch mehr Unterstüzung mit.
Auch der Unterschied zwischen Windows 7 und 10 gab es keine Unterschiede obwohl da ja neues beim Betriebsystem unterstüzt wird.Also kann man sagen nicht alles ist mit Wunder gesegnet.
Dann liegt es wirklich am Programm selbst,wenn es das wohl igroniert.

Hast du sowas schon mal gehabt wo deine Aussage nicht zugetroffen hatte@Piktogramm

Und da wird nix besser,es bleiben viele Erweiterungen der CPU auf der Strecke.Darum ist ab einer Gewissen Anzahl der Kerne schluss und auch das die Steigerungen nicht mehr so wild wie zuvor werden.Vielleicht erlebe ich ja eines Tages das egal wie viel Mehrleistung der CPU rein gesteckt wird,es eben nix mehr an mehrleistung hinten raus kommt.

Das wird ne herausforderung.Mal sehen wie diese Software mit der Version nach 20 Jahren aussieht.WIrd es da noch ne Steigerung geben oder erlebe ich ein Stillstand.So nach dem Motto CPU haut 100% mehrleistung oben drauf aber die setzt das Programm nicht mehr um.Genau da arbeite ich ja hin.Bis alles zu tode Optimiert worden ist.Programm selbst ist ja zu tode Optimiert(codec) nur noch die CPU wird die Leistung um sich werfen,da bin ich mir sicher.Und genau das ist mein Ziel.Die Version ist nun 5 Jahre alt,es geht weiter,immer weiter,bis nix mehr geht.
 
chillipepper schrieb:
Völlig unnötig. Auf dem Desktop möchte ich keine E-Cores. Da brauche ich nichts als performante Cores mit hoher Single Thread Performance, mehr nicht.
Und was machst du auf deinem Deaktop dann damit? Lässt du da 15 verschiedene Instanzen von reinen ST Programmen laufen oder wie?
 
@latiose88
Neue Befehle werden nur genutzt, wenn sie im Programmablauf auch vorkommen. Das geht ja schlicht nicht anders..

Davon abgesehen, CPUs mit neuen Befehlssätzen sind im Regelfall auch immer mit sonstigen Änderungen der Architektur verbunden. Selbst Programmabläufe ohne neue Befehle werden damit im Regelfall eher schneller ausgeführt.

Den restlichen Beitrag den du schreibst. Selbst wohlwollend gelesen ist das wirr und falsch..
 
Na ich schaue da mal genau hin.Wenn diese CPU mit neuen Befehlen kommt,dann bin ich gespannt ob du wirklich recht hast.Weil von Zen 2-Zen 4 und so waren das ja normale Sprünge gewesen,keine massiven.Dabei hat ja die bei AMD ebenso neue Befehle gehabt.Wenn das stimmt dann sollte das auch für die kommenden Intel CPUS es ja ebenso sein.Wenn man die Aktuellen Intel CPUS vom Takt her abgesehen mit Nackten Tatsachen also so wie man es halt vergleicht,dann bleibt bei Intel nicht mehr so viel Rohleistung übrig.Man nehme also einen I9 13900k und setze ihn auf 4 ghz.Da bleibt am Ende nichts mehr von der Rohleistung übrig.Da bringen auch die neuen Befehle nix mehr.Meine Anwendung profitiert halt sehr vom hohen CPU Takt.Darum ist Intels CPU mit 5,7 ghz auch vorne.Wäre das dem Befehlssätzen zu zu schreiben,wäre es wohl gewiss anderst wie ich finde.
 
@latiose88
Wie kommst du zu massiven Sprüngen? Die neuen Erweiterungen sind für sich genommen nicht schlecht, aber massive Sprünge sind da für ein Großteil der Software nicht zu erwarten. Wie auch, die niedrig hängenden Früchte die mit kleinen Änderungen zweistellige Prozent an Leistungszuwachs versprechen sind alle abgeerntet. Das was Intel bisher zu AVX10 und APX veröffentlich hat, ist zudem alles keine Revolution.

APX bringt hauptsächlich 16, direkt adressierbare GPRs mit und ein paar nette neue Befehle. Die zusätzlichen GPRs sind nett, aber alle x86 CPUs der letzten Jahre[1] haben sowieso viel mehr physische Register als adressierbare GPRs und setzen sowieso aus Register Renaming bis zum abwinken. Anandtech zum Beispiel vermutet für den Apple M.1 ~350 Einträge fürs Registerrenaming[2] und AMDs Zen1 hatte wohl 168 Einträge[3] und bei Zen4 es 224 für Integer und 192 für Floats.
Bei den Befehlen die APX zusätzlich mitbringt, da spart sich die CPU in speziellen Fällen ein paar Takte. Das sind aber alles keine Befehle, die eine CPU bei gängiger Software ewig drauf hängen bleibt. Die Handvoll Operationen, die die CPUs dieser Welt am häufigsten ausführt sind schon lange extrem optimiert..

Bei AVX10 ändert sich auch erstmal nicht viel. Die AVX2 Komponente von AVX10 bekommt auch 16 Register mehr und da zählt das Selbe wie bei APX. Nett, aber kein Zaubermittel. Es gibt ein paar neue Befehle, die sind auch ganz nett, vorausgesetzt man hat einen Anwendungsfall der davon profitiert.

latiose88 schrieb:
Man nehme also einen I9 13900k und setze ihn auf 4 ghz.Da bleibt am Ende nichts mehr von der Rohleistung übrig.Da bringen auch die neuen Befehle nix mehr.Meine Anwendung profitiert halt sehr vom hohen CPU Takt.
Das ist dann wahrscheinlich auch ein Problem der Anwendung bzw. deren Programmierer. Ich bin kein Freund davon, Programmierer grundsätzlich miese Softwarearchitektur, miese Optimierung zu unterstellen, aber wenn Software auf einem superskalaren Mehrkernprozessor fast nur über den Takt skaliert, läuft meist was verkehrt.

PS: Nach Satzzeichen gehört ein Leerzeichen. Ich schreibe hier ganz sicherlich kein perfektes Deutsch, aber dein Text zu lesen ist mega anstrengend!

[1]Ich warte auf den Klugscheißer, der mir jetzt ein Atom, VIA x86er aus der Mottenkiste zieht und zeigt, dass das nicht für alle Intel Atoms und/oder Via x86er gilt..
[2] https://www.anandtech.com/show/16226/apple-silicon-m1-a14-deep-dive/2
[3] https://en.wikichip.org/wiki/amd/microarchitectures/zen#Execution_Engine
 
Zurück
Oben