Intel a publié aujourd’hui son nouvel APX (Advanced Performance Extensions) et a également dévoilé le nouvel AVX10 [PDF] qui apportera pour la première fois une prise en charge unifiée des capacités AVX-512 aux P-Cores et aux E-Cores. Cette évolution du jeu d’instructions AVX aidera Intel à éviter les graves problèmes rencontrés avec sa nouvelle architecture hybride x86 trouvée dans les processeurs Alder et Raptor Lake.
Cependant, le nouvel AVX10 ISA ne sera pas pris en charge avec les processeurs Intel de la génération actuelle – il devrait arriver dans les futures puces. Intel affirme que l’AVX10 sera son vecteur ISA de choix à l’avenir pour les processeurs grand public et serveur.
Intel AVX10 (extensions d’instructions avancées 10)
À son niveau le plus basique, AVX10 permettra aux puces d’Intel qui ont à la fois des cœurs E et des cœurs P de toujours prendre en charge AVX-512, bien que les instructions 512 bits ne puissent fonctionner que sur des cœurs P. Pendant ce temps, les instructions AVX10 256 bits convergées peuvent s’exécuter sur les p-cores ou les e-cores, permettant ainsi à la puce complète de toujours prendre en charge les capacités AVX-512.
En tant que tel, Intel n’aura pas à désactiver la prise en charge des vecteurs 512 bits comme il l’a fait lorsqu’il a désactivé AVX-512 pour Alder Lake et Raptor Lake.
Plongeant plus profondément, l’AVX10 (Advanced Instruction Extensions 10) ISA est un sur-ensemble de l’AVX-512 et est livré avec toutes les fonctionnalités de l’AVX-512 ISA pour les processeurs avec des tailles de registre vectoriel de 256 bits et 512 bits.
L’AVX10 ISA convergé comprendra « des instructions vectorielles AVX-512 avec un indicateur de fonctionnalité AVX512VL, une longueur maximale de registre vectoriel de 256 bits, ainsi que huit registres de masque 32 bits et de nouvelles versions d’instructions 256 bits prenant en charge l’arrondi intégré », et cette version fonctionnera à la fois sur les p-cores et les e-cores.
Cependant, les e-cores seront limités à la longueur vectorielle maximale de 256 bits de l’AVX10 convergé, tandis que les P-cores peuvent utiliser des vecteurs de 512 bits. Cela ressemble à la prise en charge par Arm des largeurs de vecteur variables avec SVE.
Intel affirme que les applications existantes fourniront le même niveau de performances avec AVX10 qu’avec AVX-512, au moins aux mêmes longueurs vectorielles. Intel affirme également :
- Les applications compilées Intel AVX2, recompilées en Intel AVX10, devraient réaliser des gains de performances sans nécessiter de réglage logiciel supplémentaire.
- Les applications Intel AVX2 sensibles à la pression des registres vectoriels gagneront en performances grâce aux 16 registres vectoriels supplémentaires et aux nouvelles instructions.
- Les applications vectorisables hautement threadées sont susceptibles d’atteindre un débit agrégé plus élevé lorsqu’elles sont exécutées sur des processeurs Intel Xeon basés sur E-core ou sur des produits Intel avec une architecture hybride performante.
Intel prendra en charge AVX10 version 1 (AVX10.1) à partir de ses puces Xeon « Granite Rapids » de sixième génération, mais cette génération ne prendra en charge que les instructions vectorielles 512 bits, et non les nouvelles instructions vectorielles convergées 256 bits. Au lieu de cela, cette première génération servira de puce de transition d’AVX-512 à AVX10.
Les puces arrivant après Granite Rapids prendront en charge AVX10.2, qui ajoute la prise en charge des longueurs vectorielles convergées de 256 bits et d’autres nouvelles fonctionnalités, telles que les nouveaux types et conversions de données AI, les optimisations de mouvement de données et la prise en charge des normes. Tous les futurs processeurs Xeon continueront à prendre pleinement en charge toutes les instructions AVX-512 pour garantir le fonctionnement normal des applications héritées.
Pour répondre aux retours des développeurs (évidemment négatifs), Intel prévoit également de simplifier considérablement ses méthodes d’énumération AVX10 par rapport à AVX-512. Intel prévoit également de s’assurer que chaque passage à une nouvelle révision AVX10 a suffisamment de nouvelles instructions et capacités pour mériter un changement, réduisant ainsi le gonflement des versions et des énumérations.
Intel gèlera l’AVX-512 ISA lors des débuts de l’AVX10, et toute utilisation future des instructions AVX-512 se fera via l’AVX10 ISA. Pendant ce temps, le nouvel AMX ne sera pas impacté.
Intel APX (extensions de performances avancées)
Intel a également annoncé aujourd’hui le nouvel APX (Advanced Performance Extensions) (à ne pas confondre avec l’ancien iAPX 432).
Intel affirme que le code compilé par APX contient 10 % de charges en moins et 20 % de magasins en moins que le même code compilé pour une ligne de base Intel 64. Intel affirme également que les accès aux registres sont à la fois plus rapides et consomment beaucoup moins d’énergie dynamique que les opérations complexes de chargement et de stockage. Fait intéressant, le nouvel APX trouve une nouvelle utilisation pour la zone 128B qui était restée inutilisée lorsqu’Intel a abandonné MPX en 2019, et la réutilise pour XSAVE.
Voici les principales fonctionnalités d’APX :
- 16 registres supplémentaires à usage général (GPR) R16 à R31, également appelés GPR étendus (EGPR) dans le présent document
- Formats d’instructions à trois opérandes avec un nouveau registre de destination de données (NDD) pour de nombreuses instructions entières
- Améliorations ISA conditionnelles : nouvelles instructions de chargement, de stockage et de comparaison conditionnelles, combinées à une option permettant au compilateur de supprimer les écritures d’indicateurs d’état des instructions courantes
- Opérations de sauvegarde/restauration d’état de registre optimisées
- Une nouvelle instruction de saut direct absolu 64 bits
Intel affirme avoir implémenté APX de telle manière qu’il n’aura pas d’impact sur la surface du silicium ou la consommation d’énergie du cœur du processeur. Vous pouvez en savoir plus sur APX ici, et Intel a une liste de ressources pour APX et AVX10 au bas de la page liée.
APX et AVX10 font suite à l’annonce récente d’Intel selon laquelle il étudie l’amincissement de l’architecture Intel 64 en une version simplifiée de x86 nommée x86S.