Advanced Vector Extensions

Advanced Vector Extensions

Advanced Vector Extensions (AVX) ist eine Erweiterung des x86-Befehlssatzes für Mikroprozessoren von Intel und AMD, die von Intel im März 2008 vorgeschlagen wurde.[1]

Inhaltsverzeichnis

Neue Eigenschaften

Die Breite der SIMD-Register wurde von 128 Bit (bei SSE) auf 256 Bit vergrößert und von XMM0–XMM15 zu YMM0–YMM15 umbenannt. Die Prozessoren, die AVX unterstützen, führen die älteren SSE-Befehle auf den unteren 128 Bit der neuen Register aus.

AVX führt ein drei Operanden SIMD-Instruktionsformat ein, wodurch sich das Register für das Ergebnis von den Quellregistern unterscheidet. SSE-Befehle nutzen beispielsweise die übliche Zwei-Operanden-Form a = a + b, während nun auch c = a + b möglich ist, wodurch keines der beiden Ausgangsregister überschrieben wird. Das Drei-Operanden-Format kann nur mit SIMD-Operanden (YMM) verwendet werden und nicht etwa mit Allzweckregistern, wie z. B. EAX. Eine Ausweitung auf letztere ist für AVX2 geplant.

Neue Instruktionen

Instruktion Beschreibung
VBROADCASTSS, VBROADCASTSD, VBROADCASTF128 Kopiert ein 32-Bit, 64-Bit oder 128-Bit Speicheroperanden in alle Elemente eines XMM- oder YMM-Registers.
VINSERTF128 Ersetzt entweder die obere oder untere Hälfte eines 256-Bit YMM-Register mit dem Wert aus dem 128-Bit Operanden. Die andere Hälfte bleibt unverändert.
VEXTRACTF128 Extrahiert entweder die obere oder untere Hälfte eines 256-Bit YMM-Registers und kopiert den Wert in den 128-Bit Operanden.
VMASKMOVPS, VMASKMOVPD Liest eine beliebige Anzahl von Vektorelementen bedingt aus einem SIMD-Speicheroperand in ein Zielregister, wobei der verbleibende Platz mit Nullen gefüllt wird. Alternativ schreibt es eine beliebige Anzahl von Vektorelementen bedingt von einem SIMD-Register in ein SIMD-Speicheroperanden, wobei der verbleibende Platz im Speicher nicht verändert wird.
VPERMILPS, VPERMILPD Tauscht 32-Bit oder 64-Bit Vektorelemente aus.
VPERM2F128 Mischt die vier 128-Bit Vektorelemente aus zwei 256-Bit Ursprungsoperanden in ein 256-Bit Zieloperanden.
VZEROALL Füllt alle YMM-Register mit Nullen und markiert sie als unbenutzt. Wird beim Umschalten zwischen 128-Bit- und 256-Bit-Modus verwendet.
VZEROUPPER Füllte die obere Hälfte aller YMM-Register mit Nullen. Wird beim Umschalten zwischen 128-Bit- und 256-Bit-Modus verwendet.

Anwendung

  • Nützlich für gleitkommaintensive Berechnung, vor allem im Multimedia-, wissenschaftlichen oder Finanzberechnungen. Ganzzahloperationen sollen später folgen.
  • Erhöht Parallelität und Durchsatz von Gleitkomma-SIMD-Berechnungen
  • Verringert die Registerlast durch nicht destruktive drei Operanden Form

Unterstützung in Compilern und Assemblern

GCC seit Version 4.6, die Intel Compiler Suite seit Version 11.1 und Visual Studio 2010 unterstützen AVX. Der GNU Assembler unterstützt AVX über inline Assemblerbefehle, ebenso wie Intels Pendant. Außerdem unterstützen MASM in der Version für Visual Studio 2010, Yasm ab Version 1.1.0, FASM und NASM nach eigenen Angaben auch AVX.

Betriebssystemunterstützung

AVX braucht explizite Unterstützung durch das Betriebssystem, damit die neuen Register bei einem Kontextwechsel korrekt gespeichert und wiederhergestellt werden. Die folgenden Betriebssystemversionen unterstützen AVX:

CPUs mit AVX

  • AMD:
    • Bulldozer Prozessoren, Q4 2011.[7]

Einzelnachweise

  1. Intel Software Network. Intel. Abgerufen am 5. April 2008.
  2. Twitter. Abgerufen am 23. Juni 2010.
  3. x86: add linux kernel support for YMM state. Abgerufen am 13. Juli 2009.
  4. Linux 2.6.30 - Linux Kernel Newbies. Abgerufen am 13. Juli 2009.
  5. Floating-Point Support for 64-Bit Drivers. Abgerufen am 6. Dezember 2009.
  6. Intel Offers Peek at Nehalem and Larrabee. ExtremeTech (17. März 2008). Abgerufen am 20. August 2011.
  7. Bulldozer Roadmap. Joe Doe, AMD Developer blogs (7. Mai 2009). Abgerufen am 8. September 2011.

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Advanced Vector Extensions — The Intel Advanced Vector Extensions is a set of SIMD instructions announced by Intel at the Spring Intel Developer Forum in April 2008. These instructions will appear on 2010 Intel processors such as Sandy Bridge.White papers are available at… …   Wikipedia

  • Streaming SIMD Extensions — (SSE) is a SIMD (Single Instruction, Multiple Data) instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD s 3DNow! (which had debuted a year earlier).… …   Wikipedia

  • Multimedia Acceleration eXtensions — The Multimedia Acceleration eXtensions or MAX are instruction set extensions to the Hewlett Packard PA RISC instruction set architecture (ISA). MAX was developed to improve the performance of multimedia applications that were becoming more… …   Wikipedia

  • Streaming SIMD Extensions 5 — SSE5 (Streaming SIMD Extensions 5) war eine geplante Befehlssatzerweiterung von AMD für x86 Prozessoren. Sie umfasste 47 Befehle, die vor allem zur Beschleunigung bestimmter Algorithmen, beispielsweise FFT, DCT oder der Verschlüsselung mit AES,… …   Deutsch Wikipedia

  • Vector space — This article is about linear (vector) spaces. For the structure in incidence geometry, see Linear space (geometry). Vector addition and scalar multiplication: a vector v (blue) is added to another vector w (red, upper illustration). Below, w is… …   Wikipedia

  • Advanced Micro Devices — Infobox Company company name=Advanced Micro Devices, Inc. company logo= company type=Public (nyse|AMD) foundation=1969 founder=W. Jerry Sanders III Edwin J. Turney Additional co founders location city=Sunnyvale, California, US key people=Derrick… …   Wikipedia

  • Liste d'extensions de fichiers — Sommaire 1 A 2 B 3 C 4 D 5 E 6 …   Wikipédia en Français

  • Formats (extensions) de fichiers — Liste d extensions de fichiers Sommaire 1 A 2 B 3 C 4 D 5 E …   Wikipédia en Français

  • Liste D'extensions De Fichiers — Sommaire 1 A 2 B 3 C 4 D 5 E …   Wikipédia en Français

  • Comparison of vector graphics editors — A number of vector graphics editors for various platforms exist. Potential users of these editors will make a decision based on factors such as the availability for the user s platform, the feature set, usability of the user interface (UI) and… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”