Optimisation et Performance d'Un Cache de Données Spécialisé pour du Calculs avec Matrices Creuses H/F

CEA | 08 Oct 2024


Les missions du poste

Contexte
Depuis des dizaines d'années, la puissance de calcul de nos ordinateurs ne cesse d'augmenter. Cependant, les performances globales sont freinées par le coût des accès en mémoire, qui peinent à suivre la puissance de calcul grandissante. Les hiérarchies de cache, qu'on trouve aujourd'hui dans toutes les architectures matérielles, ont pour objectif d'alléger ces coûts, mais leur intérêt n'a de sens que lorsque les données présentent des localités spatiales et temporelles fortes.
Or, dans le domaine du calcul haute performance (HPC), il est fréquent d'utiliser des données dîtes creuses, c'est-à-dire, avec un nombre important de valeurs nulles. Une fois compressées en mémoire, les données non-nulles présentent des localités spatiales et temporelles faibles et ne tirent aucun bénéfice de la mémoire cache.
Par exemple, l'opération de multiplication matrice-vecteur est un noyau de calcul très utilisé, que ce soit pour des applications scientifiques ou industrielles, ou encore dans l'IA, et les matrices générées par ces applications sont souvent creuses et de très grande dimension. Des compressions mémoires sont donc nécessaires pour les stocker, ce qui influe considérablement sur les performances de la multiplication matrice creuse-vecteur, en particulier parce que les hiérarchies de cache ne sont pas adaptées.
Il est donc nécessaire de trouver des solutions pour réduire le goulot d'étranglement de la mémoire (memory bottleneck).
Dans nos travaux, nous développons donc un cache de données spécialisé pour traiter des accès « aléatoires », c'est-à-dire dont les adresses mémoire ne sont pas consécutives (faibles localités), dans le cas d'étude de matrices creuses à structure bandée.

Objectifs / Ce que le stagiaire devra accomplir
Après avoir pris connaissance de l'état-de-l'art sur le sujet des matrices creuses pour le HPC, il sera demandé au stagiaire d'étudier et se familiariser avec l'environnement RISC-V et les développements en cours sur le cache de données.
Le/la stagiaire aura ensuite plusieurs tâches à accomplir, durant lesquelles il sera guidé dans le but de lui faire découvrir le métier d'ingénieur-chercheur.

Certaines tâches auront pour but d'apporter des optimisations matériels au cache de données. Les modifications seront assez simples, avec pour but la prise en main du RTL. Si il/elle est à l'aise, le/la stagiaire pourra toutefois rechercher et implémenter ses propres propositions d'optimisation.
La tâche principale du stagiaire consistera à étudier et expérimenter les paramètres de dimensionnement du cache de données spécialisé, dans le but d'atteindre les meilleures performances. Cette tâche est plus ouverte car dépendante de nombreux paramètres principalement orientés sur deux plans orthogonaux : les contraintes matérielles, et les structures des matrices creuses. Cette tâche constituera un travail de recherche plus approfondi, et pourra donner lieu à une publication scientifique de haut niveau.

Le profil recherché

Vous préparez un diplôme de niveau Bac +5 (ingénieur ou Master 2) dans les domaines de l'informatique et l'électronique.
Vous êtes passionné par la recherche scientifique et technologique et êtes reconnu pour votre curiosité, votre envie d'apprendre des choses nouvelles et de partager vos connaissances.

Compétences requises
Il est important que vous vous sentiez à l'aise avec les compétences dont vous aurez besoin, mais le stage est une formation. Vous serez formé sur les notions qui vous manquent.
Vous serez à l'aise si :
Vous maitrisez des langages de programmation comme C et Python
Vous avez déjà développé en RTL en utilisant les langages de description matériel VHDL ou SystemVerilog
Vous avez déjà simulé du RTL en utilisant des logiciels tel que QuestaSim / Xcelium / VCS
Vous savez utiliser Git
Vous savez utiliser les bases de l'environnement Linux
Vous avez une appétence pour les mathématiques, en particulier des notions sur les calculs matriciels
Vous savez faire de la recherche bibliographique efficacement
Compétence obligatoire : avoir un bon niveau d'anglais, principalement en compréhension écrite.

Compétences acquises à l'issue du stage
Utilisation de vos connaissances en C et Python
Utilisation du langage SystemVerilog
Utilisation de simulateurs matériels
Conception de circuits pour la mise en oeuvre d'un noyau de calcul mathématique
Utilisation de Git dans un environnement Linux
Etude de l'état-de-l'art et démarche de recherche scientifique
Potentiellement, utilisation de LaTeX pour le rapport

Ouvertures après le stage
Une thèse sur le sujet des calculs avec données creuses pourrait faire suite à ce stage. Vous seriez candidat prioritaire si intéressé.
En dehors de cette opportunité particulière, le CEA recrute en nombre sur des sujets très divers, à travers toutes la France, et travail avec de nombreux laboratoires de recherche et d'entreprises à travers le monde. Votre stage au CEA pourrait être l'occasion de débuter la constitution de votre réseau.

Les petits + qui font la différence
Dans notre laboratoire, vous intégrerez une équipe pluridisciplinaire vous permettant de vous ouvrir à d'autres domaines que le HPC, comme l'IA et la physique quantique, et vous familiariser avec les différents postes de recherche qui font tourner la roue. Notre équipe est conviviale et très disponible, vous pourrez vous intégrer facilement et demander conseil à n'importe qui.
Vous aurez également l'occasion de pratiquer votre expression orale en anglais via des réunions étudiantes bihebdomadaires.
Pour finir, vous bénéficierez d'horaires flexibles, d'un service de restauration de bonne qualité à petit prix.

Conformément aux engagements pris par le CEA en faveur de l'intégration des personnes handicapées, cet emploi est ouvert à toutes et à tous. Le CEA propose des aménagements et/ou des possibilités d'organisation pour l'inclusion des travailleurs handicapés.

Bienvenue chez CEA

Le CEA est un acteur majeur de la recherche, au service des citoyens, de l'économie et de l'Etat.

Il apporte des solutions concrètes à leurs besoins dans quatre domaines principaux : transition énergétique, transition numérique, technologies pour la médecine du futur, défense et sécurité sur un socle de recherche fondamentale. Le CEA s'engage depuis plus de 75 ans au service de la souveraineté scientifique, technologique et industrielle de la France et de l'Europe pour un présent et un avenir mieux maîtrisés et plus sûrs.

Implanté au coeur des territoires équipés de très grandes infrastructures de recherche, le CEA dispose d'un large éventail de partenaires académiques et industriels en France, en Europe et à l'international.

Les 20 000 collaboratrices et collaborateurs du CEA partagent trois valeurs fondamentales :

- La conscience des responsabilités
- La coopération
- La curiosité

Finalisez votre candidature

sur le site du recruteur.