Jeux d'instructions : extensions SIMD et extensions vectorielles

Ajouter à la bibliothèque

H1202 V1 Article de référence
Interactif Logo doc&quiz

Jeux d'instructions : extensions SIMD et extensions vectorielles

Auteur(s) : Daniel ETIEMBLE, Lionel LACASSAGNE

Relu et validé le 5 janvier 2021 | Read in english

Ajouter à la bibliothèque Ajouter à la bibliothèque

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter un extrait gratuit

Déjà abonné ?

Présentation

RÉSUMÉ

Les extensions SIMD sont présentes dans de nombreux jeux d’instructions. Alors qu’Intel a continué à étendre la taille des registres à 512 bits avec les instructions SIMD correspondantes, ARM a arrêté l’évolution de l’extension SIMD Neon et opté pour l’extension vectorielle SVE. Enfin RISC-V privilégie l’extension vectorielle. Les différences entre extensions SIMD et vectorielles sont présentées, ainsi que les dernières évolutions du SIMD Intel et les extensions vectorielles SVE et RISC-V.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l'article

AUTEUR(S)

  • Daniel ETIEMBLE : Ingénieur de l’INSA de Lyon - Professeur émérite à l’université Paris Saclay

  • Lionel LACASSAGNE : Ingénieur EPITA - Professeur à Sorbonne Université

 INTRODUCTION

Depuis la seconde moitié des années 1990, les principaux jeux d’instructions (Intel IA32 et Intel 64, ARM, IBM, etc.) ont introduit des extensions SIMD. Les caractéristiques essentielles ont été présentées dans l’article [H 1 200] . Si Intel a continué à augmenter la taille des registres SIMD de 64 bits à 128, 256 et 512 bits, les autres extensions ont toujours des registres SIMD de 128 bits. Au lieu d’étendre l’extension Neon à 256 bits, ARM a choisi de définir une nouvelle extension appelée SVE ( Scalable Vector Extension ) qui est de fait une extension vectorielle.

Nous présentons la différence entre les extensions SIMD et les extensions vectorielles. Dans une extension SIMD, pour une opération donnée, il y a une instruction différente pour chaque taille de registre SIMD, pour chaque taille (8, 16, 32, 64 bits) et chaque type de données (entiers signés ou non signés, flottants). Dans une extension vectorielle, il y a une seule instruction par opération : des registres de longueur vectorielle et de configuration définissent la longueur des registres vectoriels, la nature des éléments et le nombre d’éléments sur lesquels porte l’opération définie par l’instruction. Sur le benchmark DAXPY, le nombre d’instructions du benchmark (code statique) et le nombre d’instructions exécutées sont comparés.

L’évolution des extensions SIMD est examinée. En plus de l’augmentation de la taille des registres (256 bits pour AVX en 2008, 512 bits pour AVX-512 en 2013), les extensions Intel ont vu l’introduction de caractéristiques vectorielles que l’on trouvait dans les machines vectorielles comme le Cray-1 (1976). AVX-2 introduit les instructions gather et scatter, qui permettent des accès mémoire avec des pas non unitaires alors que le SIMD pur ne permet que d’accéder à des mots mémoire successifs. AVX-512 introduit les instructions avec masque, c’est-à-dire que l’instruction opère en fonction d’un registre de masque, permettant de sélectionner les éléments sur lesquels porte l’opération. L’évolution des extensions SIMD Intel se traduit par une très grande augmentation du nombre d’instructions. La taille variable des instructions Intel le permet, au prix d’une augmentation du nombre d’octets des instructions (2 à 3 pour AVX, 4 pour AVX-512). Par...

Cet article est réservé aux abonnés
Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés. Il vous reste 92 % à découvrir.

Cet article est réservé aux abonnés Consulter un extrait gratuit

Déjà abonné ?


MOTS-CLÉS

jeu d'instructions   |   RISC-V   |   extension SIMD   |   extension vectorielle

DOI (DIGITAL OBJECT IDENTIFIER)

https://doi.org/10.51257/a-v1-h1202

Lecture en cours
Jeux d'instructions : extensions SIMD et extensions vectorielles

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

( 408 articles )

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Services

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir le détail de l'offre

Dans les ressources documentaires

Introduction au parallélisme et aux architectures parallèles

Le parallélisme est dorénavant utilisé dans la majorité des architectures, des systèmes embarqués aux sup...

Jeux d'instructions des processeurs

Les jeux d’instructions comprennent l’ensemble des instructions machine qui permettent à un processeur d’...

Extensions SIMD des jeux d'instructions

Cet article décrit les extensions SIMD des jeux d'instructions des microprocesseurs. Les différentes exte...

RISC-V : un jeu d’instructions Open Source

Les jeux d’instructions, qui sont l’interface entre le matériel et le logiciel, définissent les opération...

WhitePaper
4 janvier 2023
Introduction à l’intelligence artificielle

l\'IA s\'emploie à résoudre les problématiques qui relèvent de diverses activités humaines (perception, prise de décision, planification, diagnostic, interpréta...

Tous les livres blancs
Toutes les actualités

Inscrivez-vous aux newsletters !

Contactez-nous