Optimisation de la hiérarchie mémoire d’une architecture multi/manycoeur hétérogène pour l’intelligence artificielle

Publié le : 10 janvier 2019

Dans le cadre de ses activités liées à la conception d’architectures de calcul à haute efficacité énergétique, le laboratoire a développé la plateforme multicoeur hétérogène STELLAR. Cette plateforme est basée sur l’utilisation de cœurs de processeur RISC-V hétérogènes de type BOOM (à haute performance) et Rocket (à haute efficacité énergétique), afin d’implémenter une approche similaire à l’approche ARM big.LITTLE. Ses interfaces génériques et l’utilisation de bus de communication standardisés de type AMBA (AXI4 & AHB/APB) permettent d’intégrer de manière simple des blocs de traitements dédiés comme par exemple des accélérateurs matériels en fonction des applicatifs ciblés.
Dans ce contexte, les architectures embarquées font face à de nombreux challenges, mêlant notamment traitements massifs de données et sûreté de fonctionnement. Les applications de type véhicule autonome, intégrant des solutions à base de traitements neuronaux, en sont la parfaite illustration. Afin de relever ces défis, nous proposons dans le cadre de ce stage d’optimiser la hiérarchie mémoire de la plateforme en place. Pour cela, le candidat procédera tout d’abord à une analyse critique d’algorithmes d’intelligence artificielle afin de proposer des optimisations de la hiérarchie mémoire de la plateforme. Ces optimisations pourront aller de la modification de la structure de cache actuelle à l’intégration potentielle d’interfaces mémoires vers l’extérieur, en passant par l’inclusion de nouveaux niveaux de cache ou des mécanismes de gestion dédiés. En se basant sur cette analyse, le candidat déterminera la meilleure stratégie à mettre en œuvre et procédera à son implémentation à l’aide des moyens à disposition dans le laboratoire. Il procédera enfin dans un dernier temps à l’évaluation des performances de la nouvelle hiérarchie proposée.
Le candidat recherché est en dernière année de master recherche ou diplôme ingénieur (bac+5). Des connaissances solides en conception d’architecture des processeurs, ainsi qu’en langages C++ et C sont requises. Une connaissance des réseaux de neurones profonds est un avantage. Le candidat idéal pour ce poste est curieux, aime apprendre de nouvelles choses et n’hésite pas à proposer des idées originales pour relever les nouveaux défis.

En naviguant sur notre site, vous acceptez que des cookies soient utilisés pour vous proposer des contenus et services adaptés à vos centres d’intérêts. En savoir plus
X