Abstraction de la vectorisation pour les nouvelles architectures matérielles

IFP Energies nouvelles - Sciences et Technologies du Numérique

Stage Informatique - Développement Hauts-de-Seine entre mars et mai 2023 5 mois


IFP Energies nouvelles (IFPEN) est un acteur majeur de la recherche et de la formation dans les domaines de l’énergie, du transport et de l’environnement. De la recherche à l’industrie, l’innovation technologique est au cœur de son action, articulée autour de quatre priorités stratégiques : Mobilité Durable, Energies Nouvelles, Climat / Environnement / Economie circulaire et Hydrocarbures Responsables.

Dans le cadre de la mission d’intérêt général confiée par les pouvoirs publics, IFPEN concentre ses efforts sur :

  • l’apport de solutions aux défis sociétaux de l’énergie et du climat, en favorisant la transition vers une mobilité durable et l’émergence d’un mix énergétique durable ;
  • la création de richesse et d’emplois, en soutenant l’activité économique française et européenne et la compétitivité des filières industrielles associées.

Partie intégrante d’IFPEN, l’école d’ingénieurs IFP School prépare les générations futures à relever ces défis.

Abstraction de la vectorisation pour les nouvelles architectures matérielles

IFPEN a une expertise reconnue en modélisation numérique et calcul haute performance. Performance et calcul intensif sont essentiels pour traiter des simulations d’envergure sur des supercalculateurs. L’évolution du matériel informatique est beaucoup plus rapide que le cycle de vie de nos simulateurs. De plus, ces architectures informatiques sont de plus en plus hétérogènes et complexes. Pour obtenir de bonnes performances, il est nécessaire d’adresser finement les différentes couches matérielles.

Pour cela il faut utiliser des paradigmes de programmation différents et adéquate selon les couches : MPI entre les noeuds de calcul, muti-thread sur les sockets des processeurs, SIMD au niveau des coeurs de calcul ou encore cuda, hip, etc pour les accélérateurs GPUs.

Dans ce contexte, il est nécessaire de concevoir des briques permettant de s’abstraire au mieux de ces différentes couches matérielles.

Le problème que nous adressons est lié à la vectorisation SIMD des coeurs de calcul, où les intrinsèques sont propres aux architectures des coeurs de calcul.

IFPEN travaille avec l’INRIA et Lip6 sur la librairie open source MIPP (https://github.com/aff3ct/MIPP). Cette librairie écrite en C++ permet de s’abstraire des différents types de SIMD via une interface commune. A ce jour, MIPP couvre les SIMD sse, avx, avx2 et avx512 pour les processeurs Intel, AMD et neon pour les processeurs ARM.

Avec les dernières générations de processeurs ARM+SVE et RISC-V de nouveaux concepts émergent notamment celui de pouvoir spécifier la taille des vecteurs SIMD à l’exécution du programme. La prise en compte des tailles de registre variable n’est pas pour le moment possible avec MIPP. Pour les ajouter, une réécriture ou une évolution fonctionnelle s’avèrerait chronophage. De plus le même souci risque de se représenter avec de futurs processeurs ou de nouveau besoins fonctionnels. Il nous semble donc préférable d’aller vers une approche générative. Cette approche nous permettra de générer des couches abstraites comme MIPP selon le besoin de l’utilisateur et l’évolution des futurs SIMD.

Objectifs du stage

Dans une première partie du stage, l’objectif sera d’ajouter une version ARM SVE avec une taille de registre fixe dans MIPP. Puis faire des tests de performance de cette nouvelle implémentation sur le solveur linéaire MCGSolver utilisant MIPP.

Dans une seconde partie du stage, l’objectif sera d’abstraire les concepts sous-jacents aux différents SIMD sous la forme d’un meta-model. Puis de créer une instance de ce meta-model pour chaque type de SIMD. A partir du méta-model et de ces instances, il faudra implémenter un générateur permettant de regénérer dans un premier temps les instructions MIPP actuelles. Puis de générer les instructions nécessaires pour MIPP avec plus de concepts registre taille variable.


(PDF - Max : 5 Mo)
(PDF - Max : 5 Mo)

En cliquant sur postuler, je crée mon profil iQuesta et j'accepte les conditions d'utilisation d'iQuesta.

Annonces similaires

Stage - Product Developer (F/H)

Worldline Licensed Payment Products

Stage Informatique - Développement Hauts-de-Seine entre janvier et mars 2023 6 mois

Full-Stack Software Developer - Paris

Heex Technologies

Stage Informatique - Développement Paris entre février et avril 2023 de 4 à 6 mois

Stage Nocode Maker - H/F

NetDevices

Stage Informatique - Développement Paris entre aujourd'hui et mars 2023 6 mois

Stage dev front ou fullstack JS - pré-embauche

NetDevices

Stage Informatique - Développement Paris entre janvier et mai 2023 6 mois

Stage Data-engineer / data-science (H/F)

NetDevices

Stage Informatique - Développement Paris entre janvier et mars 2023 6 mois

contact

IFP Energies nouvelles - Sciences et Technologies du Numérique
Raphaël GAYNO

Indemnité Oui

12 Annonces
Métiers
Développeur d'Applications Mobiles
Le Développeur d'Applications Mobiles conçoit, met à jour et optimise des applications pour différents supports (tablettes, smartphones, objets connectés...). Expert…
Conseils
Pour que la vie d’étudiant ne rime pas avec parcours du combattant, retrouvez tous nos conseils stage / alternance / emploi