Vectorisation portable avec maitrise de la précision numérique pour des codes de simulation multi-précision
Auteur / Autrice : | Lana Scravaglieri |
Direction : | Olivier Aumage, Mihail Popov |
Type : | Projet de thèse |
Discipline(s) : | Informatique |
Date : | Inscription en doctorat le 19/10/2022 |
Etablissement(s) : | Bordeaux |
Ecole(s) doctorale(s) : | École doctorale de mathématiques et informatique |
Partenaire(s) de recherche : | Laboratoire : Laboratoire bordelais de recherche en informatique |
Equipe de recherche : Supports et Algorithmes pour les applications numériques hautes performances (SATANAS) |
Mots clés
Résumé
La performance des simulateurs a un impact direct à la fois sur la qualité des résultats de simulation, avec la précision souhaitée et sur la capacité d'explorer une grande variété d'hypothèses scientifiques. Les moyens de calcul parallèle modernes reposent sur des architectures matérielles comprenant plusieurs niveaux de parallélisme dont l'utilisation des unités de calcul SIMD. Ce niveau de parallélisme est de plus en plus important car il permet d'augmenter fortement le nombre d'opérations flottantes par seconde. Dans cette thèse nous nous focalisons sur ce niveau de parallélisme, essayant d'atteindre la performance optimale des noyaux de calculs utilisés dans nos applications. Les difficultés liées à ces unités de calculs sont multiples. En effet, nous sommes face aux différentes architectures toujours en évolution. Chaque architecture possède différents types de jeux d'instructions où leur utilisation optimale dépend de la taille du vecteur, du type utilisé, de la précision requise. Ces jeux d'instructions permettent d'écrire le même calcul de multiple façon, à des précisions différentes. L'utilisation de ces instructions est non-triviale pour les développeurs non spécialistes. Ces difficultés rendent compliqué leur utilisation dans les simulateurs métiers dont la durée de vie est plus longue que celle d'une architecture cible. En partant de ce constat, l'objectif du travail de recherche proposé est d'étudier et de concevoir des techniques d'abstractions permettant de s'affranchir de la dépendance avec les couches matérielles, tout en permettant d'atteindre une précision de calcul voulue. Nous proposons une approche basée sur les techniques de génération de code itérative pour des noyaux vectoriels hautes performances, de façon portable pour les différents jeux d'instructions des architectures telles que Intel/AMD x86, ARM et RISC-V et prenant en compte la précision numérique souhaitée.