
Formation : Vectorisation SIMD (Simple Instruction Multiple Data)
Responsable : Dimitri LECAS
Intervenant : Dimitri LECAS
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 l'é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 ont été progressivement introduites dans les architectures et leur utilisation est aujourd'hui une clé incontournable pour obtenir de bonnes performances sur les générations actuelles de processeurs.
Objectifs
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é
- Pré-requis
- Durée et modalités
- Contenu de la formation
- Supports de cours
- Prochaines sessions
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
Minimale : 8 personnes ;
Maximale : 20 personnes.
Programme
- Introduction
- Qu'est ce que le SIMD ?
- Intérêt du SIMD
- Évolution de la technologie
- Problème de vectorisation
- Dépendances
- Appels de fonctions
- Premier TP
- OpenMP SIMD
- Le standard OpenMP SIMD
- Déclaration de boucle vectorielle avec OpenMP SIMD
- Déclaration de fonction vectorielle avec OpenMP SIMD
- Deuxième TP
- Gain de la vectorisation
- Perte d'efficacité à cause des accès mémoire
- Modèle des gains de la vectorisation grâce au Roofline model
- Troisième TP
- Outils
- Présentation de l'outil INTEL Vector Advisor
- Présentation de l'outil Maqao
- Quatrième TP
- Conclusion et TP final
💡 50 % du temps sera consacré aux travaux pratiques
Pour une exécution efficace des parties pratiques, celles-ci se dérouleront sur le supercalculateur Jean Zay. Une station de travail avec accès au calculateur de l'IDRIS est mise à disposition des apprenants. Une expérience dans l’utilisation d’un supercalculateur, tout comme un accès préalable à celui-ci, ne sont pas requis.
Support de cours
Tous les supports de cours, y compris les diapositives, les notes et les exercices pratiques, sont fournis sous la licence suivante : Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). Pour plus de détails sur la licence, veuillez consulter cette page.
Pour consulter les dates des prochaines sessions de cette formation, rendez-vous sur la page suivante :
Inscription
Personnel CNRS/EPSCP/université française | Participants externes |
Vous êtes personnel du CNRS, d'une université française ou d'un établissement public à caractère scientifique, culturel et professionnel (EPSCP) ? Votre inscription est gratuite via notre serveur. | Nos formations s’adressent à tous les professionnels des entreprises, organismes publics et particuliers. |