Intel Advanced Vector Extensions (AVX, AVX2, AVX-512)

Home » Server-Hardware » Intel Advanced Vector Extensions (AVX, AVX2, AVX-512)
Server-Hardware, Server-Prozessoren Keine Kommentare

 

Grundlagen zu AVX: die Prozessor-Architektur

Um im folgenden Artikel etwas genauer auf die neuen Fähigkeiten von AVX eingehen zu können, wollen wir an dieser Stelle nochmal grob auf zwei wichtige Merkmale der zugrunde liegenden Prozessor-Architektur erwähnen: die Register und den Befehlssatz.

Bei den Registern handelt es um verschiedene, sehr schnelle Speicherbereiche innerhalb des Prozessors, dessen hauptsächliche Aufgabe es ist, zu verarbeitende Daten und Adressen zwischenzuspeichern. Als Registerbreite bezeichnet man die Anzahl der in einem Register speicherbaren Bit.

Der Befehlssatz ist die Gesammtheit aller Befehle, die der Prozessor mit Hilfe seiner Ausführungseinheiten und Register ausführen kann. Der größte Teil der heute am Markt befindlichen Systeme arbeiten mit einem erweiterten x86 Befehlssatz.

Mit der Einführung des Intel Pentium II Prozessors erweiterte Intel den Befehlssatz um die sogenannten „Multimedia Extension“ (Intel MMX). Hiermit wurde der Befehlssatz erstmalig um sogenannte SIMD-Befehle erweitert. ( Mit einher ging auch eine Erhöhung der Registerbreite auf 64Bit.)

Mit Hilfe von SIMD-Befehlen (Single Instruction Multiple Data) lassen sich mit nur einem Befehl mehrere Datensätze paralel bearbeiten. Zuvor konnte wie in der Abbildung unten zu erkennen, nur ein Befehl auf ein Datensatz angewendet werden.

 

Quelle: https://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions

Quelle: https://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions

Laut Angaben von Intel lassen sich bei der Verwendung des gleichen prozessor durch den Einsatz von SIMD optimierten Code Performance-Gewinne von bis zu 60% realisieren. Aber selbst bei nicht-optimierten Code kann von Leistungssteigerungen von bis zu 20% ausgegangen werden.

In den folgenden Jahren wurde der SIMD-Befehlssatz in Form der Intel Streaming SIMD Extensions (Intel SSE) stetig erweitert. Auch die Registerbreite wurde von Zeit zu Zeit angepasst.

Beispiel: In ein 64Bit Register passen wahlweise zwei 32Bit SIMD-Datentypen, vier 16Bit Datentypen oder 8 8Bit Datentypen.

 

 MMXSSESSE2
verügbar seitPentiumPerntium 3Pentium 4
Anzahl der Register888
Breite der Register64 Bit128 Bit128 Bit
SIMD Datentypen8/16/32 Bitfloat8/16/32/64 Bit
float / double
Parallelitätsgrad2-842-16

Sandy Bridge integriert erstmals Intel AVX und erhöt die Anzahl der Register auf 16.  Zudem werden die Register mit der Einführung von AVX auf 256Bit erweitert. AVX2 bringt mit der Einführung von Haswell hauptsächlich Änderungen im Detail und neue Befehle. Dennoch kann die Performance um bis zu über 60% im Vergleich zum Vorgänger gesteigert werden.

Die neue Intel Skylake Architektur wird mit AVX-512 schließlich über 32 Register mit einer Registerbreite von 512Bit aufwarten.

 

Was bringen aktuelle und kommende Intel Advanced Vector Extensions ?

 

AVX ist eine relativ spezifische Prozessor-Erweiterung von der nicht jede Anwendung und nicht jede Anwendung im gleichen Maße profitiert. Neben der (im allgemeinen grundsätzlich gegebenen) Unterstützung durch das Betriebssystem, ist die Qualität der Implementierung in die jeweilige Anwendung maßgeblich für deren Performance-Gewinn.

Zu den großen Gewinnern zählen einerseits mathematische Anwendungen,  die komplexe Simulationen wie zum Beispiel Berechnungen von Strömungen, elektrichen Feldern oder aber der Thermodynamik durchführen. Auch die Kalkulation diverser Algorythmen wie sie beispielsweise zur Berechnung von Hash, CRC , Parity und SHA eingesetzt wird profitiert stark.

Andererseits profitieren Anwendungen, die audiovisuelle Inhalte verarbeiten stark. Also Videoschnitt sowie Bild- und Audio-bearbeitung.

 

Quelle: http://www.intel.de/content/dam/www/public/us/en/documents/white-papers/performance-xeon-e5-v3-advanced-vector-extensions-paper.pdf

Quelle: http://www.intel.de/content/dam/www/public/us/en/documents/white-papers/performance-xeon-e5-v3-advanced-vector-extensions-paper.pdf

 

 

Weitere Informationen / Quellen

Introduction to Intel® Advanced Vector Extensions

How Intel® AVX2 Improves Performance on Server Applications

Intel Developer Zone – AVX2

ISA-Extensions

Using Intel® Streaming SIMD Extensions and Intel® Integrated Performance Primitives to Accelerate Algorithms

Optimizing Performance with Intel Advanced Vector Extensions

Additional AVX-512 instructions

Benefits of Intel® AVX For Small Matrices

Intel® Xeon Phi™ Coprocessor Vector Microarchitecture