Extensions SIMD des jeux d'instruction

Ajouter à la bibliothèque

H1200 V1 Article de référence

Extensions SIMD des jeux d'instruction

Auteur(s) : Daniel ETIEMBLE, Lionel LACASSAGNE

Date de publication : 10 février 2015 | 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É

Cet article décrit les extensions SIMD des jeux d'instructions des microprocesseurs. Les différentes extensions SSE et AVX de IA-32 et Intel64 (Intel), les extensions Neon d'ARM et les différentes variantes d'IBM (Altivec) sont prises comme exemple. L'article montre les spécificités de l'arithmétique entière, du traitement des structures conditionnelles, des accès mémoire. Il montre comment les extensions comprennent des extensions naturelles des instructions scalaires, et des instructions ad hoc destinées à des applications particulières. Ces instructions s'utilisent soit en aidant le compilateur à «vectoriser», soit en utilisant des intrinsèques, qui sont des appels de fonctions correspondant aux instructions à insérer dans un programme C ou C++.

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 INSA Lyon - Professeur émérite à l'université Paris Sud

  • Lionel LACASSAGNE : Ingénieur EPITA - Maître de conférences à l'université Paris Sud

 INTRODUCTION

Cet article décrit les caractéristiques principales des extensions SIMD des jeux d'instructions des microprocesseurs modernes qui ont été introduites et développées depuis les années 1990. Les opérations arithmétiques et logiques effectuées par les instructions scalaires des jeux d'instructions s'effectuent sur la taille maximale des registres des processeurs, 32 ou 64 bits. Or, les programmes peuvent travailler sur des données de taille inférieure, comme les octets (8 bits), les mots de 16 bits, ces données étant signées ou non signées. C'est le cas notamment pour le traitement d'images, le traitement du signal et de nombreuses autres applications. Le principe des instructions SIMD est donc d'utiliser des registres de plus grande taille (128, 256 ou 512 bits) et d'effectuer la même opération sur des vecteurs contenant plusieurs éléments 8 bits, 16 ou 32 bits pour les nombres entiers, 32 ou 64 bits sur les nombres en représentation flottante.

Les caractéristiques de ces extensions sont illustrées à partir des plus utilisées : SSE à SSE4.2, AVX et AVX2 pour les jeux d'instructions IA-32 et Intel 64 d'Intel, Neon et Neon2 d'ARM, Altivec et ses différentes variantes IBM.

Les instructions arithmétiques flottantes ne posent aucun problème. Le problème des retenues pour les instructions arithmétiques entières est détaillé. Les instructions SIMD effectuant la même opération sur tous les éléments d'un vecteur, les structures conditionnelles if-then-else impliquent un traitement particulier. Les instructions mémoire doivent accéder à des éléments situés à des adresses mémoire successives, ce qui implique des traitements particuliers lorsque ce n'est pas le cas. L'exemple classique est le cas de données rangées en mémoire sous forme de tableaux de structures (AoS) qu'il faut transformer en structures de tableaux (SoA) pour permettre des calculs SIMD.

La plupart des instructions SIMD sont des extensions naturelles des instructions scalaires des jeux d'instructions accompagnées des instructions de manipulation de données pour faciliter le traitement SIMD. Ces instructions s'accompagnent d'instructions ad hoc destinées à des applications particulières. Les extensions SIMD ont aussi été appelées extensions multimédias, car elles avaient initialement pour objectif de rendre compétitifs les processeurs généralistes sur les applications multimédias, les applications du traitement de signal et de sécurité. Des exemples typiques d'instructions ad hoc visent la détection de mouvement, le calcul sur les nombres complexes, la cryptographie, etc.

Cet article détaille également comment utiliser ces instructions. Une possibilité est...

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

instructions SIMD   |   SSE   |   AVX   |   Neon   |   Alvitec   |   vectorisation   |   intrinsèque

DOI (DIGITAL OBJECT IDENTIFIER)

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

Lecture en cours
Extensions SIMD des jeux d'instruction

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’...

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...

Jeux d’instructions : extensions SIMD et extensions vectorielles

Les extensions SIMD sont présentes dans de nombreux jeux d’instructions. Alors qu’Intel a continué à éten...

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