Intel hat seinen neuen APX veröffentlicht (Erweiterte Leistungserweiterungen) heute und stellte auch den neuen AVX10 vor [PDF] Dadurch wird erstmals eine einheitliche Unterstützung für AVX-512-Funktionen sowohl für P-Cores als auch für E-Cores bereitgestellt. Diese Weiterentwicklung des AVX-Befehlssatzes wird Intel dabei helfen, die schwerwiegenden Probleme zu umgehen, auf die es mit seiner neuen x86-Hybridarchitektur in den Alder- und Raptor-Lake-Prozessoren gestoßen ist.
Der neue AVX10 ISA wird jedoch nicht von Intels CPUs der aktuellen Generation unterstützt – er soll in zukünftigen Chips verfügbar sein. Intel sagt, dass AVX10 in Zukunft sowohl für Verbraucher- als auch für Serverprozessoren der Vektor-ISA der Wahl sein wird.
Intel AVX10 (Advanced Instruction Extensions 10)
Auf der grundlegendsten Ebene ermöglicht AVX10 Intels Chips, die sowohl über E-Cores als auch über P-Cores verfügen, weiterhin AVX-512 zu unterstützen, obwohl 512-Bit-Anweisungen nur auf P-Cores ausgeführt werden können. In der Zwischenzeit können konvergierte 256-Bit-AVX10-Anweisungen entweder auf den p-Cores oder den e-Cores ausgeführt werden, sodass der gesamte Chip weiterhin die AVX-512-Funktionen unterstützt.
Daher muss Intel die Unterstützung für 512-Bit-Vektoren nicht deaktivieren, wie dies der Fall war, als AVX-512 sowohl für Alder Lake als auch für Raptor Lake deaktiviert wurde.
Wenn wir tiefer gehen, ist die AVX10 (Advanced Instruction Extensions 10) ISA eine Obermenge von AVX-512 und verfügt über alle Funktionen der AVX-512 ISA für Prozessoren mit 256-Bit- und 512-Bit-Vektorregistergrößen.
Die konvergierte AVX10 ISA wird „AVX-512-Vektorbefehle mit einem AVX512VL-Feature-Flag, einer maximalen Vektorregisterlänge von 256 Bit sowie acht 32-Bit-Maskenregistern und neuen Versionen von 256-Bit-Befehlen, die eingebettete Rundung unterstützen“, und enthalten Diese Version läuft sowohl auf P-Cores als auch auf E-Cores.
Allerdings sind die E-Cores auf die maximale Vektorlänge von 256 Bit des konvergenten AVX10 beschränkt, während P-Cores 512-Bit-Vektoren verwenden können. Dies ähnelt der Unterstützung von Arm für variable Vektorbreiten mit SVE.
Laut Intel bieten bestehende Anwendungen mit AVX10 das gleiche Leistungsniveau wie mit AVX-512, zumindest bei denselben Vektorlängen. Intel behauptet außerdem:
- Mit Intel AVX2 kompilierte Anwendungen, die auf Intel AVX10 neu kompiliert werden, sollten Leistungssteigerungen erzielen, ohne dass zusätzliche Softwareoptimierungen erforderlich sind.
- Intel AVX2-Anwendungen, die empfindlich auf Vektorregisterdruck reagieren, werden aufgrund der 16 zusätzlichen Vektorregister und neuen Anweisungen die größte Leistung erzielen.
- Vektorisierbare Anwendungen mit hohem Threading erzielen wahrscheinlich einen höheren Gesamtdurchsatz, wenn sie auf E-Core-basierten Intel Xeon-Prozessoren oder auf Intel-Produkten mit leistungsstarker Hybridarchitektur ausgeführt werden.
Intel wird AVX10 Version 1 (AVX10.1) ab seinen Xeon „Granite Rapids“-Chips der sechsten Generation unterstützen, diese Generation unterstützt jedoch nur 512-Bit-Vektoranweisungen und nicht die neuen konvergenten 256-Bit-Vektoranweisungen. Stattdessen wird diese erste Generation als Übergangschip von AVX-512 zu AVX10 dienen.
Chips, die nach Granite Rapids auf den Markt kommen, werden AVX10.2 unterstützen, was die Unterstützung für die konvergierten 256-Bit-Vektorlängen und andere neue Funktionen, wie neue KI-Datentypen und -Konvertierungen, Optimierungen der Datenbewegung und Standardunterstützung, hinzufügt. Alle zukünftigen Xeon-Prozessoren werden weiterhin alle AVX-512-Anweisungen vollständig unterstützen, um sicherzustellen, dass ältere Apps normal funktionieren.
Um auf das (offensichtlich negative) Feedback der Entwickler einzugehen, plant Intel außerdem, seine AVX10-Aufzählungsmethoden im Vergleich zu AVX-512 deutlich zu vereinfachen. Intel plant außerdem sicherzustellen, dass jede Umstellung auf eine neue AVX10-Revision über genügend neue Anweisungen und Funktionen verfügt, um eine Änderung zu rechtfertigen, und so das Aufblähen von Versionen und Aufzählungen zu reduzieren.
Intel wird die AVX-512-ISA einfrieren, wenn AVX10 auf den Markt kommt, und alle künftigen Verwendungen von AVX-512-Anweisungen werden über die AVX10-ISA erfolgen. Der neue AMX bleibt davon unberührt.
Intel APX (Erweiterte Leistungserweiterungen)
Intel hat heute auch den neuen APX (Advanced Performance Extensions) angekündigt (nicht zu verwechseln mit dem iAPX 432 der alten Schule).
Intel behauptet, dass APX-kompilierter Code 10 % weniger Ladevorgänge und 20 % weniger Speicher enthält als der gleiche Code, der für eine Intel 64-Basislinie kompiliert wurde. Intel gibt außerdem an, dass Registerzugriffe sowohl schneller sind als auch deutlich weniger dynamische Energie verbrauchen als komplexe Lade- und Speichervorgänge. Interessanterweise findet der neue APX eine neue Verwendung für den 128B-Bereich, der ungenutzt blieb, als Intel 2019 MPX aufgab, und nutzt ihn für XSAVE.
Hier sind die wichtigsten Funktionen von APX:
- 16 zusätzliche Universalregister (GPRs) R16–R31, in diesem Dokument auch als Extended GPRs (EGPRs) bezeichnet
- Befehlsformate mit drei Operanden und einem neuen Datenzielregister (NDD) für viele ganzzahlige Befehle
- Bedingte ISA-Verbesserungen: Neue bedingte Lade-, Speicher- und Vergleichsanweisungen, kombiniert mit einer Option für den Compiler, um das Schreiben von Statusflags allgemeiner Anweisungen zu unterdrücken
- Optimierte Vorgänge zum Speichern/Wiederherstellen des Registerstatus
- Ein neuer absoluter 64-Bit-Direktsprungbefehl
Intel behauptet, APX so implementiert zu haben, dass es keinen Einfluss auf die Siliziumfläche oder den Stromverbrauch des CPU-Kerns hat. Du kannst Lesen Sie hier viel mehr über APXund Intel hat unten auf der verlinkten Seite eine Liste mit Ressourcen für APX und AVX10.
APX und AVX10 folgen der jüngsten Ankündigung von Intel, dass dies der Fall ist Untersuchungen zur Verschlankung der Intel 64-Architektur zu einer vereinfachten Version von x86 namens x86S.