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.
NewsIntel × AMD: x86-Allianz feiert 1-Jähriges, AVX10 und ACE kommen für alle
war kein Problem, zu dem Zeitpunkt hat AMD keinerlei Relevanz gehabt.
Das hat Intel ganz alleine verbockt, denn nichtmal ihre eigenen CPUs konnten AVX512 schnell. Für kurze AVX512-Nutzung war es schneller AVX2 zu nehmen, da das Umschalten einige ms dauert, die CPU an Takt einbüste.
Das war auch ein Grund, aber es gab auch einen Unterschied in der Implementierung. Es fehlten anfangs auch Befehle, die AMD implementiert hatte. Also wie immer in der Geschichte: "Jede Menge kompatibel" 🙃
Ich erinnere mich noch gut an die Situation mit AVX-512: Trotz beeindruckender Performance konnte sich der Standard nie wirklich durchsetzen, da es an Kompatibilität zu älteren AVX-Versionen mangelte und AMD lange Zeit kein echtes AVX-512 unterstützte.
Es gibt kein unechtes AVX-512. AMD hat AVX-512 bis inkl. Zen3 gar nicht unterstuetzt, und ab Zen4 auf allen Prozessoren. Ein viel groesseres Problem fuer die Verbreitung von AVX und AVX-512 ist Intel. Die verkaufen noch immer Prozessoren, die noch nicht einmal AVX koennen (bei allen AMD-Prozessoren seit Bulldozer (2011) und Jaguar (2013)); auch auf Prozessoren, die Hardware fuer AVX usw. haben, schaltet Intel die ab, z.B. diverse Celerons. Bei Core i-Alder Lakes hatten sie wenigstens einen Grund (wenn auch keinen besonders guten), AVX-512 abzuschalten (es war auf den E-Cores nicht implementiert), aber bei den Xeons auf Alder/Raptor-Lake-Basis, bei denen die E-Cores abgeschalten sind, gibt es diesen Grund nicht.
Ergänzung ()
DevPandi schrieb:
Auch das ist so nicht richtig, weil IA64 nicht wirklich als Nachfolge geplant war sondern eine Großrechner-Architektur zusammen mit HP.
Natuerlich war das als Nachfolge geplant, deswegen hat Intel ja auch jedes AMD64-aehnliche Projekt innerhalb Intels unterdrueckt (von diesen Projekten hat man dann immer nur Geruechte gelesen). Und klar sollte sich IA-64 zuerst im High-End etablieren, bevor es dann in den PC-Markt kommt (der die 64 bits ja auch erst spaeter gebraucht hat). Aber Intel hatte nie den Plan, etwas AMD64-maessiges zu machen, bis sie durch die Umstaende dazu gezwungen wurden. Und dann haben sie AMD64 ganze verschaemt IA32e genannt.
Uebrigens hatte der ersten Itanium und der Itanium II schon IA-32-Hardware auf dem Chip, keine Firmware-Emulation. Nur war diese Hardware so extrem langsam, dass die Software-Emulation schneller war, und niemand die Hardware verwendet hat.
Die gemeinsame Erklärung enthält einen Abschnitt zu einheitlicher ISA über alle SKUs. Es war ein riesen Problem dass Intel versucht hat mit ISA Erweiterungen die eigene Produkte zu differenzieren.
Zum Thema AMD. Mike Clark hat in einem Interview gesagt, dass AMD AVX-512 unterstützt hat als der Rest des Kerns soweit war die Anforderungen von AVX-512 an Bandbreite zu unterstützen
IA-64 hatte neue Zoepfe, und zwar die falschen. Es war ein Schritt fort auf den falschen Weg, eine verzopfte Architektur, was sich dann auch in schlechter Performance zeigte.
Da AMD64 eine inkompatible Architektur zu IA-32 ist (ein IA-32-Programm kann nicht im 64-bit-mode ausgefuehrt werden), konnten sie alte Zoepfe abschneiden, und haben das auch getan. Ich habe z.B. gerade den Befehl AAA nachgeschlagen. Den gibt es im 64-bit mode nicht. Genauso mit AAD, AAM, und AAS. Bei DAA und DAS genauso. Als weiteren Befehl von zweifelhaftem Nutzen fiel mit XLAT ein, den haben sie aber drinnengelassen; vielleicht gab's doch genug Software, die den benutzt.
P.S.: Ich habe jetzt auch den Befehl BOUND nachgeschlagen. Der ist im 64-bit-Mode auch nicht drinnen.
Intel ist aktuell der einzige große Anbieter von echtem AVX-512, das in vielen High-End- und Server-CPUs wie Skylake-X, Ice Lake oder Sapphire Rapids unterstützt wird. AMD hingegen setzt statt AVX-512 auf 2×256-Bit AVX, also zwei 256-Bit-Pfade, und unterstützt AVX2 vollständig, hat aber kein echtes AVX-512 in Ryzen- oder EPYC-Prozessoren integriert.
Es gab zwar Berichte, dass AMD bei Zen 4 (Ryzen 7000) AVX-512 intern testweise implementiert hat, aber in der finalen Version ist es deaktiviert und für Nutzer nicht verfügbar. Auch bei Zen 4c und anderen Varianten bleibt AVX-512 außen vor.
Kurz gesagt: AMD liefert bisher keine echten AVX-512-Befehlssätze in seinen CPUs. Wer AVX-512 braucht, muss aktuell zu Intel greifen.
Komplett falsch. Zen 5 hat AVX512 mit voller Breite implementiert. Und auch Zen 4 hat es zwar auf zwei Takte aufgeteilt, aber die Befehle beherrscht. Das ist echtes AVX512, vom Laptop bis zum Server bei AMD.
Intel hingegen bietet AVX512 nur auf den großen P-Core Xeons an, selbst auf den kleinen nicht.
Zen5 hat 512 bit breite ALU in Port 0-3. Also "volles AVX". Das ist aber ein Implementierungsdetail, ob es so schnell wie AVX2 oder doppelt so schnell ist, ist erstmal egal (doppelt so viele Architektur-Register ist es allemal immer Wert).
AVX512 hat zwei großes Probleme:
1. Es gibt zig Varianten und jeder Prozessor kann nur ein Teil, und ein Teil wird sogar nach Knights landing gar nicht mehr unterstützt. Siehe https://en.wikipedia.org/wiki/AVX-512#CPUs_with_AVX-512
2. Intel hat es in den Consumer CPUs nicht drin (13er, 14, Core Series). Adoption beginnt im kleinen, oder stirbt da.
Intel ist aktuell der einzige große Anbieter von echtem AVX-512, das in vielen High-End- und Server-CPUs wie Skylake-X, Ice Lake oder Sapphire Rapids unterstützt wird. AMD hingegen setzt statt AVX-512 auf 2×256-Bit AVX, also zwei 256-Bit-Pfade, und unterstützt AVX2 vollständig, hat aber kein echtes AVX-512 in Ryzen- oder EPYC-Prozessoren integriert.
AMD implementiert AVX-512 auf Zen4 und auf den Zen5s, die auf Strix Point und Krackan zu finden sind, mit 2 Durchgaengen durch 256-bit breite Einheit, richtig. Wenn man sich dann Benchmarks anschaut, bei denen ein Zen4 mit einem Rocket Lake oder Tiger Lake verglichen wird, die beide eine 512-bit breite AVX-512-Einheit haben, schneidet der Zen4 besser ab. Warum sollte es irgendjemand interessieren, ob AVX-512 mit zwei Durchgaengen durch 256-bit breite Einheiten implementiert ist, wenn dabei eine bessere Performance herauskommt?
Die Zen5-CCDs fuer Ryzen 9xxx und den entsprechenden EPYCs haben uebrigens 512 bit breite AVX-512-Einheiten und liefern noch einmal mehr Leistung.
Ich kenne den Artikel, dennoch danke für das verlinken. Es hat allerdings auch einen Grund, warum ich schreibe, dass deine Aussage mit "das ist so nicht richtig" bezeichne und nicht als falsch bezeichne.
1. IA64 ist keine Erweiterung von IA32/x86, sondern eine vollständig Architektur.
2. IA64 ist in Zusammenarbeit und ebenso Initative von HP im Server/Mainframe-Segment entstanden. Zum damaligen Zeitpunkt - also Anfang der 90er - gab es überwiegend 32 Bit-Architekturen. Damit ist man jedoch bereits in eine Sackgasse glaufen. Bei x86 - als auch den Anderen - gab es entsprechende Erweiterungen für den Adressraum, was allerdings nicht so einfach zu programmieren waren. Andere Prozessorhersteller haben das Problem erkannt und Angefangen 64-Bit Architekturen. Das erste Ziel von Intel war, dass man im Server- und Workstationmarkt die x86-Architektur durch IA64 ablöst, im Clientmarkt sollte x86 jedoch vorerst bleiben.
mibbio schrieb:
Genau, Itanium sollte tatsächlich x86 ersetzen. Ein Teil der Motivation von Intel war dabei, dass sie damals (glaube in den 1970ern) auch AMD eine Lizenz für x86 geben und sich damit zwangsweise einen Konkurrenten schaffen mussten.
Auch das ist so nicht richtig. IBM hat Intel dazu gezwungen, die Prozessoren als ganzes an AMD und noch ein paar Firmen zu lizensieren, da IBM nicht abhängig sein wollte von einem Zulieferer.
Da IBM jedoch ab den 90er quasi "unwichtiger" wurde, wollte Intel neue Prozessoren nicht mehr an AMD, Cyrix und Co Lizensieren, so dass die quasi nicht mehr den AM486 - was auch nur ein i486 war - Produzieren konnte. Das war dann die Geburtsstunde des Pentiums. Da man 586 auch nicht als Marke schützen konnte: Pentium.
AMD und Co haben jedoch die x86-Lizenz behalten. Itanium ist und bleibt jedoch erst mal ein Projekt, dass in Zusammenarbeit mit HP und dort für den Server/Mainframe-Markt entwickelt wurde und dort sollte es auch x86 ersetzen.
Der Clientmarkt war vielleicht langfristig angedacht, jedoch damals weder kurz- noch mittelfristig. AMD hat im Serverbereich Intel und HP nur eben ein Strich durch die Recnung gemacht mit ihrer x86_64-Umsetzung, weil plötzlich eben 64 Bit + Kompatiblität bei schneller Ausführung war.
Intel hat jedoch auch noch Mitte der 90er bewusst Serverprozessoren der x86-Architektur umgesetzt und verkauft: Pentium Pro und Pentium 2 Xeon, später eben die Xeon Familie. Für günstige Server ist man also sehr bewusst auch x86 von Intel geblieben.
AMD hat dann mit Athlon MP da versucht Fuß zu fassen und hat mit Opertron und dann x64 die Chance ergriffen auch im "größeren" Servermarkt anzugreifen. Intel ist Itanium primär an HP losgeworden. Sun und Co haben vermehrt auf eigene CPUs gesetzt und AMD hat mit x86_64 genau in den Bereich ein Vorstoß gestartet, weil Intel es nicht wollte. Für billige Server und Clients war x86, für alles teure wollte man Itanium.
Ergänzung ()
mae schrieb:
Natuerlich war das als Nachfolge geplant, deswegen hat Intel ja auch jedes AMD64-aehnliche Projekt innerhalb Intels unterdrueckt (von diesen Projekten hat man dann immer nur Geruechte gelesen).
Das weiß ich an der Stelle selbst, ich habe nur nicht die Zeit gehabt an der Stelle ein Roman zu schreiben, wie sonst üblich. Deswegen auch ein: Das ist so nicht richtig und kein, dass ist falsch. Meilenweiter Unterschied.
Intel hat für den Workstation-Markt und den "Kleinservermarkt" eben auch Mitte der 90er mit Pentium Pro als auch Pentium 2 Xeon und Pentium 3-S für den entsprechenden Markt entwickelt.
mae schrieb:
Uebrigens hatte der ersten Itanium und der Itanium II schon IA-32-Hardware auf dem Chip, keine Firmware-Emulation.
So, und jetzt noch zum Artikel: Zusammen mit AVX10 wurde APX vorgestellt, was mich wesentlich mehr interessiert. Komisch, dass davon nichts zu hoeren ist, dafuer von ACE, wovon ich das erste mal lese, und dessen Beschreibung wenig interessant klingt. Ich hoffe, APX kommt noch. Und dann wuerde mich interessieren, in welchen Prozessoren wir APX und AVX10 sehen werden. Vorgestellt wurden sie vor ueber zwei Jahren, und zumindest Intel hat da wohl schon vorher dran gearbeitet. Die Implementierung erfordert m.E. keine tiefgreifenden Aenderungen, da muss wohl kein voller 5-Jahres-Zyklus abgewartet werden, bis das erscheint, von daher hoffe ich, dass es nicht mehr lange dauert.