Jeux d’instructions : des extensions SIMD aux extensions vectorielle
Daniel Etiemble
21 January 2020, 10h30 - 21 January 2020, 12h00 Salle/Bat : 465/PCRI-N
Contact :
Activités de recherche : Architectures parallèles
Résumé :
Les extensions SIMD des jeux d'instructions sont devenues incontournables pour le calcul haute performance. La taille des registres SIMD Intel ont cru jusqu'à 512 bits (2013), mais est restée à 128 bits pour les autres extensions SIMD. Au lieu d'étendre l'extension SIMD Neon, ARM a défini une extension vectorielle appelée SVE qui est "orthogonale" à Neon. Le jeu d'instructions "open source" RISC-V privilégie une extension vectorielle. La différence entre extension SIMD et extension vectorielle est présentée. C'est le très grand nombre d'instructions SIMD différentes, et donc de codes opération nécessaires qui a conduit D. Paterson à considérer le SIMD comme "néfaste" (harmful) et qui conduit à privilégier les extensions vectorielles, notamment pour les jeux d'instructions à longueur fixe. Les extensions vectorielles sont définies "from stratch", ce qui évite les problèmes de compatibilité binaire auxquels sont confrontés les extensions SIMD Intel. Utiliser des registres vectoriels de 1024 ou 4096 permet d'accélérer plus les parties vectorisables du code.