Vectorisation SIMD (Simple Instruction Multiple Data)

Les concepts de la vectorisation, apparus dans les années 70, ont permis durant les décennies suivantes la réalisation de machines spécifiques adaptées à la simulation numérique, aux performances exceptionnelles pour leur époque.

Si cette catégorie d'ordinateurs a ensuite disparu, les concepts de la vectorisation restent totalement pertinents et, lorsqu'ils peuvent être mis en œuvre, induisent de forts taux d'accélération sur les portions de codes qui s'y prêtent.

Des dispositifs matériels ont donc été introduits dans les processeurs scalaires « classiques », notamment par l'intermédiaire des extensions AVX (Advanced Vector Extensions) ajoutés aux jeux d'instructions de l'architecture x86 d'Intel et AMD, et des extensions SVE (Scalable Vector Extension) des processeurs ARM. Plusieurs déclinaisons en ont été progressivement introduites et leur utilisation est aujourd'hui une clé incontournable pour obtenir de bonnes performances sur les générations actuelles de processeurs.

Responsable :

Objectif :

L'objectif de cette formation est de présenter les concepts de la vectorisation et la façon d'en tirer bénéfice sur les générations modernes de processeurs :

  • S'initier à la vectorisation SIMD (Simple Instruction Multiple Data)
  • Appréhender les concepts sous-jacents
  • Mettre en œuvre ces concepts sur des exemples concrets

Public concerné :

tout utilisateur désirant acquérir des notions sur la vectorisation SIMD

Pré-requis :

connaissance de base d'UNIX et du langage FORTRAN

Durée et modalités :

Cette formation dure 1 jour.

Elle a lieu uniquement en présentiel dans les locaux de l'IDRIS à Orsay (91).

Assistance

maximale : 20 personnes, minimale : 8 personnes.

Programme :

  • Introduction
    1. Qu'est ce que le SIMD ?
    2. Intérêt du SIMD
    3. Évolution de la technologie
  • Problème de vectorisation
    1. Dépendances
    2. Appels de fonctions
  • Premier TP
  • OpenMP SIMD
    1. Le standard OpenMP SIMD
    2. Déclaration de boucle vectorielle avec OpenMP SIMD
    3. Déclaration de fonction vectorielle avec OpenMP SIMD
  • Deuxième TP
  • Gain de la vectorisation
    1. Perte d’efficacité à cause des accès mémoire
    2. Modèle des gains de la vectorisation grâce au Roofline model
  • Troisième TP
  • Outils
    1. Présentation de l'outil INTEL Vector Adivsor
    2. Présentation de l'outil Maqao
  • Quatrième TP
  • Conclusion et TP final

50 % du temps sera consacré aux travaux pratiques

Équipement :

supercalculateur de l'IDRIS

Intervenant :

S’inscrire à cette formation :

Pour vous inscrire à cette formation, contactez CNRS Formation Entreprises : . Toutefois, si vous êtes personnel du CNRS ou d'une université française, votre inscription est gratuite via notre serveur : https://cours.idris.fr

Accéder à la fiche de cette formation dans le catalogue CNRS Formation entreprises : https://cnrsformation.cnrs.fr/vectorisation-simd?axe=162