Erstmal etwas zum Artikel. Hier wird schon wieder kolportiert, AVX wäre das Gegenstück zu SSE5. Nur damit das übliche AMD <-> Intel Gebashe nicht zu kurz kommt. Das ist aber totaler Blödsinn. SSE5 baut immer noch auf SSE auf und verhält sich damit zu AVX in etwa wie zu MMX. Ja ja, die Äpfel und Birnen lassen grüssen. Eine 256 Bit SIMD/MIMD Schnittstelle ist der nächste logische Schritt. Und diese wird auch AMD früher oder später implementieren. Ganz unabhängig vom SSE5 Evolutionsschritt, was ja nicht einfach nur ein SSE Update ist, sondern der Einzug von MIMD in x86 CPUs. Sollte das bei AVX fehlen, wäre das natürlich fast schon katastrophal. Ob AVX wirklich etwas taugt, wird man daher erst mit der Veröffentlichung der Spezifikation sehen.
Übrigens, wenn man diversen Quellen glauben darf, wird bereits Shanghai über SSE5 verfügen. Kann ich mir momentan zwar nicht vorstellen, aber falls das stimmen sollte, wäre es alleine schon wegen dem zeitlichen Unterschied Unsinn, irgendwelche Relationen herzustellen. Abschliessend sei noch erwähnt, AMD und Intel haben ein Technologieabkommen. Intel ist es genauso freigestellt, SSE5 zu implementieren, wie AMD AVX. Und da über CPUs von 2010/2011 sowieso noch nicht viel bekannt ist, erübrigt sich jede weitere Spekulation.
Voyager10 schrieb:
Das AVX wird schweineschnell sein wenn ich das mal so bemerken darf , ich sehe hier schon den SSE-Geschwindigkeitunterschied von AMD-So939 (SSE 64bit) zum Intel-Conroe (SSE 128bit) bei Programmen die solche Instruktionen nutzen.
Du wirfst hier wild Sachen durcheinander, die völlig kontextfrei sind. Pentium-M, Athlon64, Core2 oder K10 implementieren exakt die gleiche 128 Bit SSE Spezifikation. Dass die letzten beiden hier schneller als ihre Vorgänger sind, liegt also nicht an der Spezifikation. Und vielmehr ist AVX momentan nicht. Letztendlich ist die Implementierung entscheidend. Pentium-M und Athlon64 haben nur eine 64 Bit Pipeline für SSE, müssen also einen SSE Befehl in 2 Teile splitten. Genauso wenig wird AVX schneller sein, wenn die bisherige 128 Bit Pipeline bestehen bleibt und ein AVX Befehl in 2 Teile gesplittet wird. Spezifikation und Implementierung sind eben zwei verschiedene Paar Schuhe. Und auch wenn AVX in der Theorie doppelte Leistung ermöglicht, in der Praxis wird der Nutzen begrenzt sein. Einfache Genauigkeit ermöglicht 8 Operationen pro Instruktion. Ist in der Praxis aber unüblich, da viele Algos auf 3- bzw. 4-dimensionalen Vektoren aufbauen (x,y,z(,w)). APIs für Spiele wie DirectX Graphics oder OpenGL basieren zB darauf. Um hier Vorteile zu haben, müsste man schon 2(4) solcher Vektoren gleichzeitig berechnen können. Der eventuelle zusätzliche Aufwand zur Bereitstellung der Daten dürfte sich wohl bei weitem nicht überall lohnen. 128 Bit Genauigkeit steht zudem noch in den Startlöchern und wird im Desktop Bereich sowieso keine Bedeutung haben. Das einzige momentan denkbare Szenario, wo AVX effektiv etwas bringen wird, sind Gleitkomma Operationen mit doppelter Genauigkeit. Denn dann kann ein Vektor mit 4 Elementen in einem Rutsch verarbeitet werden, anstatt in 2 Schritten wie bisher. Aber auch das wird sich in der Praxis nur in speziellen Bereichen, wie zB Rendering, deutlich auswirken. Vorausgesetzt natürlich immer, es wird auch eine vollwertige 256 Bit Pipeline implementiert.