Advanced Vector Extensions (AVX) ist eine Erweiterung des Befehlssatzes für Mikroprozessoren der x86-Architektur, die von Intel im März 2008 vorgeschlagen wurde.[1] AVX ist eine Erweiterung der älteren SIMD-Befehlssatzerweiterung Streaming SIMD Extensions 4, die ebenfalls von Intel initiiert wurde. Die Breite der Register und Datenwörter erhöht sich auf 256 Bit. Die folgende Tabelle zeigt die Weiterentwicklung der SIMD-Instruktionen in der x86-Architektur:
Name der Erweiterung |
Daten- breite |
Registeranzahl | Adressierungs- schema |
vorhanden in CPUs von | |
---|---|---|---|---|---|
Intel | AMD | ||||
MMX / 3DNow! | 64 | 8 (MM0… 7) | MMX ab Pentium (P55C) | K6 (MMX) / K6-2 „Chomper“ (3DNow!) | |
SSE (1…4.*) | 128 | 8/16 (XMM0…15) | REX | SSE4: Core 2, Nehalem | K7 „Palomino“, K8, K8 „Venice“ |
AVX | 256 | 16 (YMM0…15) | VEX | Sandy Bridge, Ivy Bridge | Bulldozer, Piledriver, Steamroller, Jaguar |
AVX2 | Haswell, Broadwell, Skylake-i, Kaby Lake-i | Excavator, Zen, Zen 2, Zen 3 | |||
AVX-512 | 512 | 32 (ZMM0…31) | EVEX | Skylake-X, Xeon Phi x200, Xeon Skylake-Scalable Processors, Tiger Lake | |
256/ 512 | Zen 4, Zen 5 | ||||
AVX10.1 | 128/ 256/ 512 | 32 (ZMM0…31) | EVEX / REX2 | ||
AVX10.2 | 128/ 256/ 512 | 32 (ZMM0…31) | EVEX / REX2 |
AVX2 erweitert den Befehlssatz von AVX um weitere 256-Bit-Befehle und wurde erstmals von Prozessoren der Haswell-Architektur (Intel) und Excavator-Architektur (AMD) unterstützt.
AVX-512 wurde 2013 veröffentlicht und erweiterte die AVX-Befehle von 256 auf 512 Bit.[2] Es wurde erstmals von Prozessoren der Knights-Landing-Architektur (Intel) unterstützt.
Als Intel APX für Advanced Performance Extensions überarbeitet Intel die bestehenden AVX-Befehlssatzerweiterungen, sodass auch bestehende Software durch Neukompilierung von den doppelt so vielen Registern (32 bei AVX-512 statt 16 bei SSE/AVX/AVX2) profitieren sollen. Der Name der auf AVX-512 aufbauenden Weiterentwicklung wird in AVX10 geändert, die vielen unterschiedlichen Erweiterungen für Server und Client vereinheitlicht und das Featureset dazu jeweils eingefroren. AVX10.1 soll bei den kommenden Intel Xeon „Scalable Processors“ der 5. Generation „Granite Rapids“ eingeführt werden. Spätere E- und P-Kerne sollen dann AVX10.2 erhalten. Mit AVX10 wird auch eine optionale variable Vektorlänge von 128, 256 und 512 Bit möglich; Zen-4-Prozessoren von AMD, die erstmals AVX-512 implementieren, unterstützen bereits zusätzlich eine Vektorlänge von 256 Bits.[3]