AVX1 AVX2 AVX3.2?

In Spielen? Für nichts, da Spiele diese Erweiterungen nicht nutzen.

Diese Register sind vor allem für massive wissenschaftliche Gleitkommaberechnungen sinnvoll, nicht für Spiele.
 

AVX Advanced Vector Extensions


Die Befehlssätze sind sehr Mathematik-lastig. Vereinfacht gesagt bekommen mit AVX (wie bei den Vorgängern) vor allem Multimedia-Anwendungen (Audio-, Video-, Bildbearbeitung) und komplexe mathematische Aufgaben (bsp. das SETI-Projekt) einen enormen Leistungsschub, sofern sie für AVX optimiert wurden. die software muss AVX auch unterstützen.
in spielen hat man keine vorteile.
 
Das ist die Weiterentwicklung von SSE. Mir ist jetzt aktuell kein Spiel bekannt, das AVX aktiv nutzt, aber prinzipiell wäre das durchaus möglich.
 
Natürlich wäre das möglich. Alleine von der Art was AVX aber so kann ist es wahrscheinlich sehr schwer bis gar nicht in Spielen zu gebrauchen. Es kommt eben nicht sehr häufig vor, dass ein Spiel beispielsweise eine Fourier-Transformation berechnen muss. :ugly:
 
SSE ist vom Prinzip her nicht extrem viel anders, nur eben eine sehr viel frühere Version. Von den Befehlssätzen gibts ja zig (MMX, SSE1-4, AVX, AES, FMA, CLMUL,...) die allesamt dafür da sind, spezielle Rechenoperationen die häufig vorkommen (je nachdem was man mit dem PC macht) stark zu beschleunigen indem man die Hardware selbst darauf auslegt.
Am einfachsten zu erkennen am AES-Beispiel. Hier wird die gängigste Verschlüsselungsroutine in Hardware umgesetzt (also grob gesagt ein Teil der CPU gebaut der nur genau das kann, das aber besonders schnell) und ist damit um grob den Faktor 10 schneller als wenn der normale x86-Teil der CPU die Verschlüsselung durchführen müsste.

Genau so funktionieren die anderen Erweiterungen auch, nur sind die Anwendungsfälle spezieller. Manche Anwendungen profitieren stark von solchen Registern, andere gar nicht. Bei Spielen ist es meist schwierig einen Nutzen aus neuen Instruktionen zu ziehen da Spiele keine "Standard-Rechenoperationen" sind die spezielle, komplexe Aufgaben ausführen, sprich kein Spiel der Welt muss besonders gut Primzahlen berechnen oder Finanzmathematik beherrschen. Alte Befehlssätze dagegen wie etwa MMX werden quasi durch die Bank unterstützt, einfach weil diese Befehlssätze weniger spezielle Dinge beschleunigen (etwa die Videodecodierung von MPEG) die auch in Spielen Verwendung finden. Dadurch dass MMX aber weniger spezialisiert ist als AES zum Beispiel ist auch der Leistungszuwachs viel kleiner, statt Faktor 10 geht man bei MMX von etwa Faktor 1,5 aus gegenüber der "normalen" x86-Berechnung (wobei es Einzelfälle gibt die auch mal 5x schneller werden können).
 
SSE ist eine sogenannte SIMD-Erweiterung (Single Instruction Multiple Data). Damit kann man - vereinfacht gesagt - Vektoroperationen durchführen:

Code:
// !!! Pseudo-Code !!!

float vec1[4], vec2[4], vec3[4];

// Ohne SIMD
vec3[0] = vec1[0] + vec2[0];
vec3[1] = vec1[1] + vec2[1];
vec3[2] = vec1[2] + vec2[2];
vec3[3] = vec1[3] + vec2[3];

// Mit SIMD
vec3 = vec1 + vec2;

Bei AVX sind die Register größer (256 Bit gegen 128 Bit bei SSE) und es gibt ein paar neue Befehle. Bei Spielen bringt SSE durchaus Vorteile, zum Beispiel bei Matrix-Vektoroperationen. Da hier maximal vierdimensional gearbeitet wird (X, Y, Z + W-Komponente), passt ein Vektor genau in ein SSE-Register (die vier floats werden "gepackt"). Sollte man allerdings auch nicht überbewerten, heutzutage kann man auch viel mit Shadern direkt auf der GPU machen.

Der Grundgedanke ist also immer, einen bestimmten Befehl auf mehreren Daten gleichzeitig ausführen zu können.

Edit: Bei MMX kommt noch hinzu, dass das aus Kompatibilitätsgründen auf den Registern der FPU arbeiten muss. Das heißt dann entweder Fließkommaoperationen oder MMX Befehle verarbeiten (MMX kann nur mit Ganzzahlen arbeiten). Anwendungen, die häufig zwischen FPU und MMX wechseln müssen, profitieren daher nur wenig bis gar nicht von MMX. Aber naja, war halt Intels erster Versuch dem x86 so etwas beizubringen.
 
Zuletzt bearbeitet:
AVX1 hat 128Bit breite Register, AVX2 256Bit.... ;)

Das einzigste Spiel welches ich kenne das AVX kann ist GRID2... Ansonsten bringt AVX hauptsächlich in Anwendungen etwas.
 
AVX1 hat 128Bit breite Register, AVX2 256Bit.... .
Das höre ich zum ersten mal. Bei Bestriebssystemen, die kein natives AVX unterstützen, wird auf 128 Bit gekappt, aber grundsätzlich nutzt AVX mindestens 256 Bit breite Register (der Xeon Phi nutzt 512 Bit). Mit AVX2 wurden allerdings 256 Bit Instruktionen eingeführt, meintest du das vielleicht?
 
Zurück