La physique computationnelle, l'intelligence artificielle ou l'analyse de graphes sont autant de domaines reposant sur le traitement de matrices creuses de grande taille. Ce sujet s'inscrit au cœur des enjeux liés au traitement efficace de telles matrices, en explorant une approche systémique, à la fois matérielle et logicielle.
Bien que le traitement des matrices creuses a été étudié d'un point de vue purement logiciel pendant des décennies, ces dernières années, de nombreux accélérateurs matériels dédiés et très spécifiques, ont été proposés pour les données éparses. Ce qui manque, c'est une vision globale de comment exploiter ces accélérateurs, ainsi que le matériel standard tel que les GPUs, pour résoudre efficacement un problème complet. Avant de résoudre un problème matriciel, il est courant d'effectuer un prétraitement de la matrice. Il peut s'agir de techniques visant à améliorer la stabilité numérique, à ajuster la forme de la matrice et à la diviser en sous-matrices plus petites (tuilage) qui peuvent être distribuées aux cœurs de traitement. Dans le passé, ce prétraitement supposait des cœurs de calcul homogènes. De nouvelles approches sont nécessaires pour tirer parti des cœurs hétérogènes, qui peuvent inclure des accélérateurs dédiés et des GPUs. Par exemple, il peut être judicieux de répartir les régions les moins denses sur des accélérateurs spécialisés et d'utiliser des GPUs pour les régions plus denses, bien que cela reste à démontrer. L'objectif de cette thèse est de proposer une vue d'ensemble du traitement des matrices éparses et d'analyser les techniques logicielles nécessaires pour exploiter les accélérateurs. Le candidat s'appuiera sur une plateforme multicœur existante basée sur des cœurs RISC-V et un GPU open-source pour développer un cadre complet et étudiera quelles stratégies sont capables d'exploiter au mieux le matériel disponible.