<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Advanced_Vector_Extensions</id>
	<title>Advanced Vector Extensions - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Advanced_Vector_Extensions"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Advanced_Vector_Extensions&amp;action=history"/>
	<updated>2026-05-17T21:05:59Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Advanced_Vector_Extensions&amp;diff=2380144&amp;oldid=prev</id>
		<title>imported&gt;Fan-vom-Wiki: /* Erweiterung AVX-512 */ Leerzeichen entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Advanced_Vector_Extensions&amp;diff=2380144&amp;oldid=prev"/>
		<updated>2026-02-17T04:23:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Erweiterung AVX-512: &lt;/span&gt; Leerzeichen entfernt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Advanced Vector Extensions&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;AVX&amp;#039;&amp;#039;&amp;#039;) ist eine Erweiterung des [[Befehlssatz]]es für [[Mikroprozessor]]en der [[x86-Architektur]], die von [[Intel]] im März 2008 vorgeschlagen wurde.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Thomas Hübner |url=https://www.computerbase.de/2008-03/sse-nachfolger-heisst-avx-und-ist-256-bit-breit/ |titel=SSE-Nachfolger heißt AVX und ist 256 Bit breit |hrsg=ComputerBase |datum=2008-03-17 |zugriff=2018-03-29}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
AVX ist eine Erweiterung der älteren [[SIMD]]-Befehlssatzerweiterung [[Streaming SIMD Extensions&amp;amp;nbsp;4]], die ebenfalls von Intel initiiert wurde. Die Breite der Register und Datenwörter erhöht sich auf 256 Bit.&lt;br /&gt;
Die folgende Tabelle zeigt die Weiterentwicklung der SIMD-Instruktionen in der x86-Architektur:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Name&amp;amp;nbsp;der&amp;lt;br&amp;gt;Erweiterung !! rowspan=&amp;quot;2&amp;quot; | Daten-&amp;lt;br&amp;gt;breite !! rowspan=&amp;quot;2&amp;quot; | Registeranzahl !! rowspan=&amp;quot;2&amp;quot; | Adressierungs-&amp;lt;br&amp;gt;schema !! colspan=&amp;quot;2&amp;quot; | vorhanden in CPUs von&lt;br /&gt;
|-&lt;br /&gt;
! Intel !! AMD&lt;br /&gt;
|-&lt;br /&gt;
| [[Multi Media Extension|MMX]] / [[3DNow|3DNow!]] || {{0}}{{0}}64 || style=&amp;quot;text-align:right;&amp;quot; | {{0}}8 {{0|X}}(MM0…{{0}}7) || || MMX ab [[Intel Pentium|Pentium]] (P55C) || [[AMD K6|K6]] (MMX) / [[AMD K6-2|K6-2]] „Chomper“ (3DNow!)&lt;br /&gt;
|-&lt;br /&gt;
| [[Streaming SIMD Extensions|SSE]] (1…4.*) || {{0}}128 || style=&amp;quot;text-align:right;&amp;quot; | 8/16 (XMM0…15) || style=&amp;quot;text-align:center;&amp;quot; | REX || SSE4: [[Intel Core 2|Core&amp;amp;nbsp;2]], [[Intel-Nehalem-Mikroarchitektur|Nehalem]] || [[AMD K7|K7]] „Palomino“, [[AMD K8|K8]], K8 „Venice“&lt;br /&gt;
|-&lt;br /&gt;
| AVX || rowspan=&amp;quot;2&amp;quot; | {{0}}256 || rowspan=&amp;quot;2&amp;quot; align=&amp;quot;right&amp;quot; | 16 (YMM0…15) || align=&amp;quot;center&amp;quot; rowspan=&amp;quot;2&amp;quot; | VEX || [[Intel-Sandy-Bridge-Mikroarchitektur|Sandy Bridge]], [[Intel-Ivy-Bridge-Mikroarchitektur|Ivy Bridge]] || [[AMD Bulldozer|Bulldozer]], [[AMD Bulldozer#Piledriver|Piledriver]], [[AMD Steamroller|Steamroller]], [[AMD Fusion#Jaguar|Jaguar]]&lt;br /&gt;
|-&lt;br /&gt;
| AVX2 || [[Intel-Haswell-Mikroarchitektur|Haswell]], [[Intel-Broadwell-Mikroarchitektur|Broadwell]], [[Intel-Skylake-Mikroarchitektur|Skylake-i]], [[Intel-Kaby-Lake-Mikroarchitektur|Kaby Lake-i]] || [[AMD Steamroller#Excavator|Excavator]], [[Zen (Mikroarchitektur)|Zen]], [[Zen&amp;amp;nbsp;2]], [[Zen&amp;amp;nbsp;3]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| AVX-512 || {{0}}512 || align=&amp;quot;right&amp;quot; rowspan=&amp;quot;2&amp;quot; | 32 (ZMM0…31) || align=&amp;quot;center&amp;quot; rowspan=&amp;quot;2&amp;quot; | EVEX || [[Intel-Skylake-Mikroarchitektur|Skylake-X]], [[Intel Xeon Phi|Xeon Phi x200]], [[Intel Xeon (Skylake)|Xeon Skylake-Scalable Processors]], [[Intel-Tiger-Lake-Mikroarchitektur|Tiger Lake]] ||&lt;br /&gt;
|-&lt;br /&gt;
| {{0}}256/512 || || [[Zen&amp;amp;nbsp;4]], [[Zen&amp;amp;nbsp;5]]&lt;br /&gt;
|-&lt;br /&gt;
| AVX10.1 || {{0}}256/512 || style=&amp;quot;text-align:right;&amp;quot; | 32 (ZMM0…31) || style=&amp;quot;text-align:center;&amp;quot; | EVEX&amp;amp;nbsp;/ REX2 ||  [[Granite Rapids]]||&lt;br /&gt;
|-&lt;br /&gt;
| AVX10.2 || {{0}}512 || style=&amp;quot;text-align:right;&amp;quot; | 32 (ZMM0…31) || style=&amp;quot;text-align:center;&amp;quot; | EVEX&amp;amp;nbsp;/ REX2 ||  [[Diamond Rapids]]||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AVX2&amp;#039;&amp;#039;&amp;#039; erweitert den Befehlssatz von AVX um weitere 256-Bit-Befehle und wurde erstmals von Prozessoren der [[Intel-Haswell-Mikroarchitektur|Haswell]]-Architektur (Intel) und [[AMD Excavator|Excavator]]-Architektur (AMD) unterstützt.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AVX-512&amp;#039;&amp;#039;&amp;#039; wurde 2013 veröffentlicht und erweiterte die AVX-Befehle von 256 auf 512 Bit.&amp;lt;ref name=&amp;quot;reinders512&amp;quot;&amp;gt;{{cite web |author=James Reinders |title=AVX-512 Instructions |language=en |date=2013-07-23 |publisher=[[Intel]] |url=https://www.intel.com/content/www/us/en/developer/articles/technical/intel-avx-512-instructions.html |accessdate=2022-12-15}}&amp;lt;/ref&amp;gt; Es wurde erstmals von Prozessoren der [[Intel-Knights Landing-Mikroarchitektur|Knights-Landing]]-Architektur (Intel) unterstützt.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AVX10&amp;#039;&amp;#039;&amp;#039; wurde 2023 veröffentlicht und soll die konvergenten Umsetzung von AVX-512 ermöglichen. Es werden alle AVX-512 Befehle unterstützt und eine Versionsbasierte Befehlssatzaufzählung eingeführt.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://cdrdv2.intel.com/v1/dl/getContent/784267 |titel=Architecture Specification for Intel® Advanced Vector Extensions 10 (Intel® AVX10) |hrsg=Intel |abruf=23.05.2025}}&amp;lt;/ref&amp;gt; In einer früheren Version der Spezifikation wurde für AVX10.2 auch eine 256-bit Implementierung vorgesehen, ab Version 3 wurde diese entfernt, so dass eine 512-Bit-Implementierung nun verpflichtend ist.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.phoronix.com/news/Intel-AVX10-Drops-256-Bit |titel=Intel AVX10 Drops Optional 512-bit: No AVX10 256-bit Only E-Cores In The Future |sprache=en |abruf=2025-05-23}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Neue Eigenschaften ==&lt;br /&gt;
[[Datei:AVX registers.svg|mini|YMM AVX-Registerschema als Erweiterung der XMM-SSE-Register]]&lt;br /&gt;
&lt;br /&gt;
Die Breite der [[SIMD]]-Register wurde von 128 Bit (bei [[Streaming SIMD Extensions|SSE]]) auf 256 Bit vergrößert. Die neuen notwendigen [[Register (Prozessor)|Register]] heißen YMM0 bis YMM15. Die Prozessoren, die AVX unterstützen, führen die älteren SSE-Befehle auf den unteren 128 Bit der neuen Register aus, d.&amp;amp;nbsp;h. die unteren 128 Bit der YMM-Register&lt;br /&gt;
werden mit den XMM-Registern geteilt.&lt;br /&gt;
&lt;br /&gt;
AVX führt ein Drei-Operanden-SIMD-Befehlsformat &amp;#039;&amp;#039;c&amp;#039;&amp;#039; := &amp;#039;&amp;#039;a&amp;#039;&amp;#039; + &amp;#039;&amp;#039;b&amp;#039;&amp;#039; ein, das Ergebnis zerstört damit nicht mehr notwendigerweise ein Quellregister, was Kopieroperationen einspart. SSE-Befehle nutzen die Zwei-Operanden-Form &amp;#039;&amp;#039;a&amp;#039;&amp;#039; := &amp;#039;&amp;#039;a&amp;#039;&amp;#039; + &amp;#039;&amp;#039;b&amp;#039;&amp;#039;. Das Drei-Operanden-Format kann nur mit [[SIMD]]-Operanden (YMM) verwendet werden und nicht mit Allzweckregistern, wie z.&amp;amp;nbsp;B. EAX oder RAX.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
* Nützlich für gleitkommaintensive Berechnung, vor allem im Multimedia-, wissenschaftlichen oder Finanzbereich. Ganzzahloperationen folgten 2013.&lt;br /&gt;
* Erhöht Parallelität und Durchsatz von Gleitkomma- und Ganzzahl-SIMD-Berechnungen.&lt;br /&gt;
* Verringert die Registerlast durch nicht destruktive Drei-Operanden-Form.&lt;br /&gt;
* Wird auch zur Beschleunigung kryptographischer Algorithmen benutzt.&lt;br /&gt;
&lt;br /&gt;
== Unterstützung in Compilern und Assemblern ==&lt;br /&gt;
[[GNU Compiler Collection|GCC]] ab Version 4.6, die Intel Compiler Suite ab Version 11.1 und [[Visual Studio 2010]] unterstützen AVX.&lt;br /&gt;
Der [[GNU Assembler]] unterstützt AVX über Inline-Assemblerbefehle, ebenso wie Intels Pendant. Außerdem unterstützen [[Microsoft Macro Assembler|MASM]] in der Version für Visual Studio 2010, [[Yasm]] ab Version 1.1.0, [[Flat assembler|FASM]] und [[Netwide Assembler|NASM]] nach eigenen Angaben auch AVX. Im x86-Codegenerator des Compiler-Unterbaus [[LLVM]] befindet sich eine vollständige AVX 1-Unterstützung ab Version 3.0.&lt;br /&gt;
&lt;br /&gt;
== Betriebssystemunterstützung ==&lt;br /&gt;
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:&amp;lt;!-- Liste alphabetisch! --&amp;gt;&lt;br /&gt;
;[[DragonFly BSD]]&lt;br /&gt;
:Anfang 2013&amp;lt;ref&amp;gt;{{cite web | url=https://lists.dragonflybsd.org/pipermail/commits/2013-January/032386.html | title=x86_64 – support for AVX instructions | accessdate=2013-11-20|language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
;[[FreeBSD]]&lt;br /&gt;
:9.1 vom 13. November 2013&amp;lt;ref&amp;gt;{{cite web |url= https://www.freebsd.org/releases/9.1R/announce.html |title= FreeBSD 9.1-RELEASE Announcement |url-status= live |accessdate= 2013-05-20 |archiveurl= https://web.archive.org/web/20130515114639/http://www.freebsd.org/releases/9.1R/announce.html |archivedate= 2013-05-15  |language=en}}&amp;lt;/ref&amp;gt; durch einen am 21. Januar 2012 eingereichten Patch&amp;lt;ref&amp;gt;{{cite web |url= https://svnweb.freebsd.org/base?view=revision&amp;amp;revision=230426 |title= Add support for the extended FPU states on amd64, both for native 64bit and 32bit ABIs |publisher= svnweb.freebsd.org |date= 2012-01-21 |accessdate= 2012-01-22|language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
;[[Linux]]&lt;br /&gt;
:ab [[Linux (Kernel)|Kernel]] 2.6.30&amp;lt;ref&amp;gt;{{cite web | url=https://git.kernel.org/linus/a30469e7921a6dd2067e9e836d7787cfa0105627 | title=x86: add linux kernel support for YMM state | accessdate=2009-07-13|language=en}}&amp;lt;/ref&amp;gt; vom 9. Juni 2009&amp;lt;ref&amp;gt;{{cite web | url=https://kernelnewbies.org/Linux_2_6_30 | title=Linux 2.6.30 – Linux Kernel Newbies | accessdate=2009-07-13|language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
;[[macOS]]&lt;br /&gt;
:ab 10.6.8 (letztes [[Mac OS X Snow Leopard|Snow Leopard]] Update)&amp;lt;ref&amp;gt;{{cite web | url=https://twitter.com/#!/comex/status/85401002349576192 | title=Twitter | accessdate=2010-06-23|language=en}}&amp;lt;/ref&amp;gt; vom 23. Juni 2011&lt;br /&gt;
;[[OpenBSD]]&lt;br /&gt;
:5.8 vom 18.&amp;amp;nbsp;Oktober 2015&amp;lt;ref&amp;gt;{{Internetquelle| url=https://www.openbsd.org/58.html| titel=OpenBSD 5.8| zugriff=2015-12-07| autor=Theo de Raadt|sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
;[[Solaris (Betriebssystem)|Solaris]]&lt;br /&gt;
:10 Update 10 und Solaris 11&lt;br /&gt;
;[[Microsoft Windows|Windows]]&lt;br /&gt;
:ab [[Microsoft Windows 7|Windows&amp;amp;nbsp;7]] SP1 und [[Microsoft Windows Server 2008 R2|Windows Server 2008 R2]] SP1 vom 22. Februar 2011&amp;lt;ref&amp;gt;{{cite web | url=https://msdn.microsoft.com/en-us/library/ff545910.aspx | title=Floating-Point Support for 64-Bit Drivers | accessdate=2009-12-06|language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CPUs mit AVX ==&lt;br /&gt;
;[[Intel]]:&lt;br /&gt;
* [[Intel-Sandy-Bridge-Mikroarchitektur|Sandy-Bridge]]-Prozessoren, Q1 2011&amp;lt;ref&amp;gt;{{cite web | url=http://www.extremetech.com/computing/80772-intel-offers-peek-at-nehalem-and-larrabee | title=Intel Offers Peek at Nehalem and Larrabee | date=2008-03-17 | publisher=ExtremeTech| accessdate=2011-08-20|language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Intel-Ivy-Bridge-Mikroarchitektur|Ivy-Bridge]]-Prozessoren, Q2 2012&lt;br /&gt;
* [[Intel-Haswell-Mikroarchitektur|Haswell]]-Prozessoren, Q2 2013&lt;br /&gt;
* [[Intel-Broadwell-Mikroarchitektur|Broadwell]]-Prozessoren, Q1 2015&lt;br /&gt;
* [[Intel-Skylake-Mikroarchitektur|Skylake]]-Prozessoren, Q3 2015&lt;br /&gt;
* [[Intel-Kaby-Lake-Mikroarchitektur|Kaby-Lake]]-Prozessoren, Q3 2016&lt;br /&gt;
* [[Intel-Coffee-Lake-Mikroarchitektur|Coffee-Lake]]-Prozessoren Q4 2017&lt;br /&gt;
&lt;br /&gt;
;[[AMD]]:&lt;br /&gt;
* [[AMD Bulldozer|Bulldozer]]-Prozessoren, Q4 2011&amp;lt;ref&amp;gt;{{cite web | url=https://www.computerbase.de/2011-09/neue-alte-amd-roadmap-fuer-bulldozer-und-llano/ | title=Bulldozer Roadmap | date=2009-05-07 | publisher=Joe Doe, AMD Developer blogs | accessdate=2011-09-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[AMD Bulldozer#Piledriver|Piledriver]]-Prozessoren, Q4 2012&lt;br /&gt;
* [[AMD Fusion#Jaguar|Jaguar]]-Prozessoren Q2 2013&lt;br /&gt;
* [[AMD Steamroller|Steamroller]]-Prozessoren, Q1 2014&lt;br /&gt;
* [[AMD Excavator|Excavator]]&amp;lt;ref&amp;gt;{{Internetquelle|url=http://www.planet3dnow.de/cms/18564-amd-piledriver-vs-steamroller-vs-excavator-leistungsvergleich-der-architekturen/subpage-architekturvergleich-how-to/|titel=AMD Piledriver vs. Steamroller vs. Excavator – Leistungsvergleich der Architekturen|werk=Planet 3DNow!|datum=2015-08-14|zugriff=2017-02-20|archiv-url=https://web.archive.org/web/20170221010315/http://www.planet3dnow.de/cms/18564-amd-piledriver-vs-steamroller-vs-excavator-leistungsvergleich-der-architekturen/subpage-architekturvergleich-how-to/|archiv-datum=2017-02-21|offline=ja }}&amp;lt;/ref&amp;gt;-Prozessoren, Q2 2015&lt;br /&gt;
* [[Zen (Mikroarchitektur)|Zen]]-Prozessoren, Q1 2017&lt;br /&gt;
* [[Zen 2|Zen-2]]-Prozessoren, Q3 2019&lt;br /&gt;
* [[Zen 3|Zen-3]]-Prozessoren, Q4 2020&lt;br /&gt;
* [[Zen 4|Zen-4]]-Prozessoren, Q4 2022&lt;br /&gt;
* [[Zen 5|Zen-5]]-Prozessoren, Q3 2024&lt;br /&gt;
&lt;br /&gt;
== CPUs mit AVX-512 ==&lt;br /&gt;
;Intel&lt;br /&gt;
* [[Intel-Cascade-Lake-Mikroarchitektur|Cascade Lake]] &lt;br /&gt;
* [[Intel-Ice-Lake-Mikroarchitektur|Ice Lake]]: Jeder P-Kern (&amp;#039;&amp;#039;Performance-Kern&amp;#039;&amp;#039;) hat nur zwei AVX2-Einheiten, die für AVX512 zu einer AVX512-Einheit zusammengeschaltet werden, sodass sich gegenüber AVX2, abgesehen von den erweiterten Instruktionen, keine Leistungssteigerung erzielen lässt. Die E-Kerne (&amp;#039;&amp;#039;Effizienz-Kerne&amp;#039;&amp;#039;) verfügen über keine AVX512-Einheit.&amp;lt;ref&amp;gt;https://cdrdv2-public.intel.com/671488/248966-Software-Optimization-Manual-R047.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Intel-Tiger-Lake-Mikroarchitektur|Tiger Lake]]: Jeder P-Kern hat nur zwei AVX2-Einheiten, die für AVX512 zu einer AVX512-Einheit zusammengeschaltet werden, sodass sich gegenüber AVX2, abgesehen von den erweiterten Instruktionen, keine Leistungssteigerung erzielen lässt. Die E-Kerne verfügen über keine AVX512-Einheit.&amp;lt;ref&amp;gt;https://cdrdv2-public.intel.com/671488/248966-Software-Optimization-Manual-R047.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Intel-Alder-Lake-Mikroarchitektur|Alder Lake]]: Nur in frühen CPU-Steppings nutzbar, AVX512 nicht offiziell unterstützt, ausschließlich in den P-Kernen implementiert. Zuerst von Intel über BIOS und Microcode-Updates deaktiviert, in späteren Steppings komplett in Hardware deaktiviert.&lt;br /&gt;
&lt;br /&gt;
;AMD&lt;br /&gt;
* [[Zen 4]]&lt;br /&gt;
** [[Zen 4#Ryzen 7000 „Raphael“|Ryzen 7000 „Raphael“]]&amp;lt;ref&amp;gt;[https://www.tomshardware.com/news/amd-ryzen-7000-zen4-avx512 AMD Ryzen 7000: Up to 16 Cores, AVX-512 Support at Launch] auf &amp;#039;&amp;#039;tomshardware.com&amp;#039;&amp;#039; vom 27. Mai 2022.&amp;lt;/ref&amp;gt;&lt;br /&gt;
** [[Zen 4#EPYC 9004 „Genoa“ &amp;amp; „Genoa-X“|EPYC 9004 „Genoa“]]&amp;lt;ref&amp;gt;[https://www.heise.de/news/AMD-Zen-4-Epyc-Prozessoren-mit-96-CPU-Kernen-und-AVX-512-6167618.html AMD Zen 4: Epyc-Prozessoren mit 96 CPU-Kernen und AVX-512] auf &amp;#039;&amp;#039;heise.de&amp;#039;&amp;#039; vom 17. August 2021.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Zen 5]]&lt;br /&gt;
** [[Zen 5#Ryzen 9000 „Granite Ridge“|Ryzen 9000 „Granite Ridge“]]&lt;br /&gt;
&lt;br /&gt;
== Neue Instruktionen AVX ==&lt;br /&gt;
{| class=&amp;quot;wikitable floatright&amp;quot; style=&amp;quot;margin-left: 1rem; text-align: center; line-height: normal&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;margin-bottom: 0.2em; font-size: small;&amp;quot; | Registerschema von AVX-512 als Erweiterung der AVX- (YMM0-YMM15) und SSE-Register (XMM0-XMM15)&lt;br /&gt;
|- style=&amp;quot;font-size: xx-small;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 50%; border: none; &amp;quot; | &amp;lt;span style=&amp;quot;float: left&amp;quot;&amp;gt;511&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;float: right&amp;quot;&amp;gt;256&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 25%; border: none; &amp;quot; | &amp;lt;span style=&amp;quot;float: left&amp;quot;&amp;gt;255&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;float: right&amp;quot;&amp;gt;128&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 25%; border: none; &amp;quot; | &amp;lt;span style=&amp;quot;float: left&amp;quot;&amp;gt;127&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;float: right&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: none&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-top: none&amp;quot; |&lt;br /&gt;
| style=&amp;quot;border-top: none&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | &amp;amp;nbsp;&amp;amp;nbsp;ZMM0&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | &amp;amp;nbsp;&amp;amp;nbsp;YMM0&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | &amp;amp;nbsp;&amp;amp;nbsp;XMM0&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM1&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM1&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM2&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM2&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM3&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM3&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM4&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM4&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM5&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM5&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM6&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM6&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM6&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM7&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM7&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM8&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM8&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM8&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM9&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM9&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM9&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM10&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM10&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM10&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM11&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM11&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM11&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM12&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM12&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM12&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM13&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM13&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM13&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM14&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM14&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM14&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM15&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ddd&amp;quot; | YMM15&lt;br /&gt;
| style=&amp;quot;padding: 0; background: #ccc&amp;quot; | XMM15&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM16&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM16&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM16&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM17&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM17&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM17&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM18&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM18&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM18&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM19&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM19&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM20&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM20&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM20&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM21&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM21&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM21&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM22&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM22&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM22&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM23&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM23&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM23&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM24&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM24&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM24&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM25&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM25&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM25&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM26&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM26&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM26&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM27&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM27&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM27&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM28&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM28&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM28&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM29&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM29&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM29&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM30&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM30&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM30&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | ZMM31&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | YMM31&lt;br /&gt;
| style=&amp;quot;padding: 0&amp;quot; | XMM31&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Instruktion&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| VBROADCASTSS&amp;lt;br&amp;gt;VBROADCASTSD&amp;lt;br&amp;gt;VBROADCASTF128&lt;br /&gt;
| Kopiert einen 32-Bit-, 64-Bit- oder 128-Bit-Speicheroperanden in alle Elemente eines XMM- oder YMM-Registers.&lt;br /&gt;
|-&lt;br /&gt;
| VINSERTF128&lt;br /&gt;
| 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.&lt;br /&gt;
|-&lt;br /&gt;
| VEXTRACTF128&lt;br /&gt;
| Extrahiert entweder die obere oder untere Hälfte eines 256-Bit-YMM-Registers und kopiert den Wert in den 128-Bit-Operanden.&lt;br /&gt;
|-&lt;br /&gt;
| VMASKMOVPS&amp;lt;br&amp;gt;VMASKMOVPD&lt;br /&gt;
| Liest eine beliebige Anzahl von Vektorelementen bedingt aus einem SIMD-Speicheroperand in ein Zielregister, wobei der verbleibende Platz mit Nullen gefüllt wird.&amp;lt;br&amp;gt;Alternativ schreibt es eine beliebige Anzahl von Vektorelementen bedingt von einem SIMD-Register in ein SIMD-Speicheroperanden, wobei der verbleibende Platz&amp;lt;br&amp;gt;im Speicher nicht verändert wird.&lt;br /&gt;
|-&lt;br /&gt;
| VPERMILPS&amp;lt;br&amp;gt;VPERMILPD&lt;br /&gt;
| Tauscht 32-Bit- oder 64-Bit-Vektorelemente aus.&lt;br /&gt;
|-&lt;br /&gt;
| VPERM2F128&lt;br /&gt;
| Mischt die vier 128-Bit-Vektorelemente aus zwei 256-Bit-Ursprungsoperanden in ein 256-Bit-Zieloperanden.&lt;br /&gt;
|-&lt;br /&gt;
| VTESTPS, VTESTPD&lt;br /&gt;
| Setzt die Flag-Bits CF und ZF entsprechend einem Vergleich aller Vorzeichenbits.&lt;br /&gt;
|-&lt;br /&gt;
| VZEROALL&lt;br /&gt;
| Füllt alle YMM-Register mit Nullen und markiert sie als unbenutzt. Wird beim Umschalten zwischen 128-Bit- und 256-Bit-Modus verwendet.&lt;br /&gt;
|-&lt;br /&gt;
| VZEROUPPER&lt;br /&gt;
| Füllt die obere Hälfte aller YMM-Register mit Nullen. Wird beim Umschalten zwischen 128-Bit- und 256-Bit-Modus verwendet.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Erweiterung AVX 2 ==&lt;br /&gt;
Eine Erweiterung stellen die &amp;#039;&amp;#039;&amp;#039;Advanced Vector Extensions 2&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;AVX2&amp;#039;&amp;#039;&amp;#039;) dar, bei der einige neue Instruktionen eingeführt wurden und zahlreiche bestehende Instruktionen nun ebenfalls 256 Bit breit sind. AVX2 wird erstmals mit den [[AMD Fusion#Excavator-basierte Modelle (Carrizo, Bristol Ridge)|AMD Carrizo]] bzw. Intel [[Intel-Haswell-Mikroarchitektur|Haswell]]-Prozessoren vertrieben.&lt;br /&gt;
&lt;br /&gt;
== Erweiterung AVX-512 ==&lt;br /&gt;
Da im Bereich des [[Hochleistungsrechnen]]s mittlerweile die Energieeffizienz immer wichtiger wird und das [[Single Instruction Multiple Data|SIMD]]-Konzept hier Fortschritte verspricht, wurde für die [[Intel Xeon Phi]] genannten Rechenbeschleuniger die Befehlssatzerweiterung AVX2 nochmals komplett überarbeitet. Unter anderem wurde hierbei die Daten- und Registerbreite auf 512 Bit verdoppelt sowie die Anzahl der Register auf 32 verdoppelt. Diese überarbeitete Erweiterung nennt Intel &amp;#039;&amp;#039;&amp;#039;AVX-512&amp;#039;&amp;#039;&amp;#039;, sie besteht aus mehreren spezifizierten Gruppen neuer Instruktionen, welche gestaffelt implementiert werden. Die zweite &amp;#039;&amp;#039;Xeon Phi&amp;#039;&amp;#039;-Generation (&amp;#039;&amp;#039;Knights Corner&amp;#039;&amp;#039;) erhält die sogenannte &amp;#039;&amp;#039;Foundation&amp;#039;&amp;#039;, die dritte Generation (&amp;#039;&amp;#039;Knights Landing&amp;#039;&amp;#039;, 2016) zusätzlich die &amp;#039;&amp;#039;CD&amp;#039;&amp;#039;-, &amp;#039;&amp;#039;PF&amp;#039;&amp;#039;- und &amp;#039;&amp;#039;ER&amp;#039;&amp;#039;-Erweiterungen.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu &amp;#039;&amp;#039;Xeon Phi&amp;#039;&amp;#039; einschließlich &amp;#039;&amp;#039;Knights Landing&amp;#039;&amp;#039; sind die Befehlsgruppen &amp;#039;&amp;#039;DQ&amp;#039;&amp;#039;, &amp;#039;&amp;#039;BW&amp;#039;&amp;#039; und &amp;#039;&amp;#039;VL&amp;#039;&amp;#039; Bestandteil der im Sommer 2017 erschienen [[Intel Xeon (Skylake)|Xeon Scalable Processors]] und der von ihnen abgeleiteten [[Intel-Skylake-Mikroarchitektur|Skylake-X]]-Prozessoren (ab Core i7-7800X).&lt;br /&gt;
&lt;br /&gt;
Die Befehlsgruppen wurden von Intel bereits vorab dokumentiert und sind über die [[CPUID]]-Instruktion abfragbar, bestimmte Register-Bits sind bei Vorhandensein der Befehlsgruppe gesetzt. Bei AMD Zen&amp;amp;nbsp;4 ist AVX-512 „double-pumped“ durch zwei 256-Bit-Vektoreinheiten,&amp;lt;ref&amp;gt;https://www.phoronix.com/review/amd-zen4-avx512&amp;lt;/ref&amp;gt; die Leistung ist jedoch „erstaunlich gut“.&amp;lt;ref&amp;gt;https://www.tomshardware.com/news/avx-512-performance-impresses-on-ryzen-7040&amp;lt;/ref&amp;gt; Bei AMD Zen&amp;amp;nbsp;5 ist AVX-512 „voll“ implementiert, arbeitet also eine 512-Bit-AVX-Berechnung in einem Takt ab, jedoch ist aus Gründen der Einsparung (Platz und Energie), für z.&amp;amp;nbsp;B. Mobilprozessoren wie dem &amp;#039;&amp;#039;[[Zen 5#Ryzen AI 300 „Strix Point“|Ryzen AI 300]]&amp;#039;&amp;#039;, auch die gleiche Aufteilung in zwei 256-Bit-Operationen, wie schon bei Zen&amp;amp;nbsp;4, weiterhin möglich.&amp;lt;ref name=&amp;quot;heiseonline_9801462&amp;quot;&amp;gt;{{Heise online |ID=9801462 |Titel=AMD Ryzen AI 300: Überraschende Details zu Zen&amp;amp;nbsp;5 sowie RDNA 3.5 und XDNA2 |Autor=Carsten Spille |Datum=2024-07-24 |Abruf=2024-09-11 |Zitat=Auch die Befehlssatzerweiterung AVX512 ist wie schon bei Zen&amp;amp;nbsp;4 wieder mit an Bord. Die Zen-5-Kerne können, anders als bei Zen&amp;amp;nbsp;4, AVX512 theoretisch auch in einem statt in zwei Durchgängen ausführen und so für die doppelte Rechenleistung pro Takt sorgen. Allerdings bewahrte sich AMD auch die Möglichkeit, die breiten Instruktionen platz- und energiesparend in zwei 256-Bit-Häppchen nacheinander abzuarbeiten, wie es schon Zen&amp;amp;nbsp;4 tat.}}&amp;lt;/ref&amp;gt; Bei Intel ist AVX-512 als Spezifikation beziehungsweise [[Roadmap]] zu sehen, welche Instruktionen Intel zukünftig in die AVX-Einheiten bringen will&amp;lt;ref&amp;gt;{{Internetquelle|url=https://software.intel.com/en-us/intel-architecture-instruction-set-extensions-programming-reference | titel=ISA-Extensions Programming Reference | zugriff=2017-10-17}}&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable zebra&amp;quot;&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| Befehlssatz&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| Name Set&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| CPUID-Bit&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| Prozessoren&lt;br /&gt;
|-&lt;br /&gt;
! Intel&lt;br /&gt;
! AMD&lt;br /&gt;
|-&lt;br /&gt;
| AVX512F &amp;lt;small&amp;gt;(Basisbefehlssatz,&amp;lt;br&amp;gt;restliche Befehle sind optional)&amp;lt;/small&amp;gt; || Foundation || EBX 16  || Xeon Phi x200, Xeon SP || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512PF          || Prefetch                               || EBX 26    || Xeon Phi x200&lt;br /&gt;
|-&lt;br /&gt;
| AVX512DQ          || Vector Double Word and Quad Word       || EBX 17    || Xeon SP || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512BW          || Vector Byte and Word                   || EBX 30    || Xeon SP || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512VL          || Vector Length                          || EBX 31    || Xeon SP || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512CD          || Conflict Detection                     || EBX 28    || Xeon Phi x200, Xeon SP || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512ER          || Exponential and Reciprocal             || EBX 27    || Xeon Phi x200&lt;br /&gt;
|-&lt;br /&gt;
| AVX512IFMA        || Integer Fused Multiply-Add mit 512 Bit || EBX 21    || Cannon Lake || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_VBMI       || Vector Bit Manipulation                || ECX 01    || Cannon Lake || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_VBMI2      || Vector Bit Manipulation 2              || ECX 06    || Cannon Lake || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_4FMAPS     || Vector Fused Multiply Accumulation Packed Single precision || EDX 03  || Xeon Phi 72x5&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_4VNNIW     || Vector Neural Network Instructions Word Variable Precision || EDX 02  || Xeon Phi 72x5&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_VPOPCNTDQ  || Vector POPCOUNT Dword/Qword            || ECX 14    || Xeon Phi 72x5 || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_VNNI       || Vector Neural Network Instructions     || ECX 11    || Xeon Cascade Lake || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_BITALG     || Bitalgorithmen, Support for VPOPCNT[B,W] and VPSHUF-BITQMB || ECX 12  || Ice Lake || Zen 4&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_GFNI       || Galois Field New Instructions          ||           || Ice Lake&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_VPCLMULQDQ || Carry-Less Multiplication Quadword     ||           || Ice Lake&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_VAES       || Vector AES                             ||           || Ice Lake&lt;br /&gt;
|-&lt;br /&gt;
| AVX512_BF16       || BFLOAT16 [[Gleitkommazahl|Floating-Point]] Format || || Cooper Lake, Sapphire Rapids || Zen 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Implementierung der einzelnen Befehlsgruppen dokumentiert für Xeon SP&amp;lt;ref&amp;gt;{{Internetquelle|url=https://software.intel.com/en-us/articles/intel-xeon-processor-scalable-family-technical-overview | titel=Xeon SP Technical Overview | zugriff=2017-10-17}}&amp;lt;/ref&amp;gt; und für Xeon Phi Knights Landing (x200).&amp;lt;ref&amp;gt;{{Internetquelle|url=https://software.intel.com/en-us/articles/how-to-detect-knl-instruction-support | titel=How to detect KNL instruction support | zugriff=2017-10-17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Benutzung ==&lt;br /&gt;
Die Benutzung dieser Spezialbefehle läuft auf folgendes hinaus:&lt;br /&gt;
* Isolation der zu optimierenden Programmteile, nur diese müssen überhaupt betrachtet werden&lt;br /&gt;
* zu optimieren sind dort:&lt;br /&gt;
** Speicherlayout der verwendeten Datenstrukturen (Alignment, Cache-Effizienz, Lokalität von Speicherzugriffen)&lt;br /&gt;
** Zerlegungen der Berechnungen in viele unabhängige Threads, die parallel und z.&amp;amp;nbsp;T. auf verschiedenen Architekturen abgearbeitet werden können (z.&amp;amp;nbsp;B. auf eine/mehrere GPU(s) ausgelagert werden können)&lt;br /&gt;
** Nutzen dieser erweiterten Befehlssätze durch …&lt;br /&gt;
*** Nutzung von Compilern, die diese Befehlssätze unterstützen&lt;br /&gt;
*** Nutzung von Bibliotheken, die diese Befehlssätze nutzen (z.&amp;amp;nbsp;B. [[Math Kernel Library]] oder [https://www.openblas.net/ OpenBLAS])&lt;br /&gt;
*** Nutzung von Bibliotheken, die wiederum solche Bibliotheken nutzen (z.&amp;amp;nbsp;B. Graphikbibliotheken)&lt;br /&gt;
*** Nutzung von Programmiersprachen, die von sich aus Gebrauch von diesen Befehlen machen (z.&amp;amp;nbsp;B. [[Python (Programmiersprache)|Python]] mit dem numpy-Paket)&lt;br /&gt;
*** Bei sehr kritischen Applikation kann das Nutzen von [[Intrinsische Funktion|Compiler Intrinsics]] oder das Schreiben von Assembler-Routinen zu einer weiteren Performance-Steigerung notwendig sein.&lt;br /&gt;
Die Probleme sind aber nicht neu und das Nutzen der Befehlssatzerweiterungen ist von diesen Optimierungen noch der Teil, der sich am besten automatisieren lässt.&lt;br /&gt;
&lt;br /&gt;
== Fazit ==&lt;br /&gt;
Programme können mithilfe von &amp;#039;&amp;#039;AVX&amp;#039;&amp;#039; und dessen 256 Bit breiten Registern im &amp;#039;&amp;#039;x64-Modus&amp;#039;&amp;#039; in jedem [[Taktzyklus]] vier [[Gleitkommaoperation]]en mit [[Doppelte Genauigkeit|doppelter Genauigkeit]] oder acht Gleitkommaoperationen mit [[Einfache Genauigkeit|einfacher Genauigkeit]] bei bspw. einer einfachen Addition berechnen. Dabei befinden sich jeweils vier Werte doppelter Genauigkeit oder acht Werte einfacher Genauigkeit in jeweils einem der 16 AVX-Register, die dann mit jeweils einem Partner verrechnet werden.&lt;br /&gt;
&lt;br /&gt;
Mit AVX2 verändert sich die Registerbreite nicht, es wurden lediglich einige der zuvor (bei AVX) noch mit 128 Bit ausgeführten Operationen (z.&amp;amp;nbsp;B. [[FMA x86|FMA3]]: [[Fused multiply-add|Fused-Multiply Add]]/Floating-Point [[Multiply-Accumulate]], [[Integer (Datentyp)#Rechenoperationen|Integeroperationen]]…) auf 256-Bit-Ausführung gebracht.&amp;lt;ref name=&amp;quot;PG17&amp;quot;&amp;gt;Gepner, Pawel. [https://www.researchgate.net/publication/321753747_Using_AVX2_Instruction_Set_to_Increase_Performance_of_High_Performance_Computing_Code &amp;quot;Using AVX2 instruction set to increase performance of high performance computing code&amp;quot;], Computing and Informatics 36.5 (2017): 1001-1018.&amp;lt;/ref&amp;gt; Es ändert sich somit die Anzahl der verfügbaren 256-Bit-[[Single Instruction Multiple Data|SIMD]]-Operationen. Bei einer einfachen Addition auf einer [[64-Bit-Architektur]] werden weiterhin (nur) vier Gleitkommaoperationen mit doppelter Genauigkeit oder acht Gleitkommaoperationen mit einfacher Genauigkeit gleichzeitig berechnet.&lt;br /&gt;
&lt;br /&gt;
Bei AVX-512 sind es aufgrund der Registerbreite von 512 Bit damit pro Befehl acht Additionen in doppelter Genauigkeit oder 16 Additionen in einfacher Genauigkeit. &lt;br /&gt;
Die Nutzung von AVX-512 beschränkt sich im Desktop-Segment gegenwärtig (2018) auf den &amp;#039;&amp;#039;X299&amp;#039;&amp;#039;-Chipsatz der &amp;#039;&amp;#039;Skylake&amp;#039;&amp;#039;-Architektur für den [[Sockel 2066]] sowie seit 2016 auch auf eine Reihe der [[Intel Xeon|Xeon]]-Prozessorbaureihen. &lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste x86-Erweiterungen}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Prozessorarchitektur nach Befehlssatz]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Fan-vom-Wiki</name></author>
	</entry>
</feed>