AVX (Advanced Vector Extensions) ist die SIMD-Erweiterung der x86-Architektur, die Intel 2011 mit der Sandy-Bridge-Mikroarchitektur einführte. AVX verdoppelt die Vektorbreite gegenüber SSE von 128 auf 256 Bit und bildet damit die Grundlage für moderne Hochleistungs- und KI-Berechnungen auf x86-Prozessoren.

YMM-Register und VEX-Codierung

Das Herz von AVX sind die 16 YMM-Register zu 256 Bit (YMM0-YMM15). SSE-Befehle arbeiten weiterhin auf der unteren 128-Bit-Hälfte (XMM) dieser Register – so bleibt Software abwärtskompatibel. AVX führt zudem eine neue, kompaktere Befehlscodierung ein, das VEX-Präfix, das auch nicht-destruktive Operanden erlaubt: Das Ergebnis kann in ein eigenes Zielregister geschrieben werden, während die Quellregister unverändert bleiben.

AVX2 und AVX-512

  • AVX2 (2013, Haswell): erweitert die 256-Bit-Verarbeitung auf Ganzzahloperationen und fügt Gather-Befehle für das Zusammenstellen von Vektoren aus Speicher hinzu
  • AVX-512: 2013 vorgeschlagen, erste Umsetzung 2016 im Intel Xeon Phi x200 (Knights Landing), ab 2017 auch in Skylake-X-Prozessoren. Verdoppelt die Registerbreite auf 512 Bit und stellt 32 ZMM-Register bereit – zuerst Intel, später auch AMD (Zen 4). Zahlreiche Instruktionen wie Maskenregister und konfliktfreie Zugriffe ergänzen das Modell

Einsatz und Grenzen

AVX-Befehle beschleunigen Videokodierung, Verschlüsselung, wissenschaftliche Simulationen und Matrixoperationen im KI-Umfeld (BLAS-Bibliotheken, Tensor-Frameworks). Die volle 512-Bit-Verarbeitung kostet jedoch Energie und kann die Taktfrequenz des Prozessors absenken – Betriebssysteme und Software wählen AVX-512 daher häufig dynamisch nur dort, wo der Gewinn den Taktverlust übersteigt (Downclocking-Thema).

Abgrenzung

SIMD ist das Konzept; AVX die konkrete x86-Ausbaustufe nach SSE. Auf ARM-Prozessoren erfüllt NEON eine vergleichbare Aufgabe mit festen 128-Bit-Vektoren.

Verwandte Grundlagen: Register-Bank, Instruktionssatz, Superskalar, Taktfrequenz, x86-64-Architektur.