Détail d'une fiche   Version PDF

CASH (SR0838ER)

Compilation et Analyse, Logiciel et Matériel

CASH →  CASH (SR0874DR)


Statut: Terminée

Responsable : Matthieu Moy

Mots-clés de "A - Thèmes de recherche en Sciences du numérique - 2024" : Aucun mot-clé.

Mots-clés de "B - Autres sciences et domaines d'application - 2024" : Aucun mot-clé.

Domaine : Algorithmique, programmation, logiciels et architectures
Thème : Architecture, langages et compilation

Période : 01/04/2018 -> 31/05/2019
Dates d'évaluation :

Etablissement(s) de rattachement : <sans>
Laboratoire(s) partenaire(s) : <sans UMR>

CRI : Centre Inria de l'Université Grenoble Alpes
Localisation : Centre de recherche Inria de l'Université Grenoble Alpes
Code structure Inria : 071135-0

Numéro RNSR : 201822804N
N° de structure Inria: SR0838ER

Présentation

L'avènement du parallélisme dans les ordinateurs et les supercalculateurs amène de nouveaux besoins en optimisation de code et nécessite de meilleurs compilateurs. Les besoins en calcul performant et efficace énergétiquement ont motivé l'apparition de nouvelles architectures comme les processeurs graphiques (GPU) et plus récemment les pluri-cœurs (many-core) et les puces reconfigurables (FPGA).

Le parallélisme dit « flot de données » (dataflow) est une manière d'approcher le problème. Une application flot de données est constituée d'acteurs qui exécutent les calculs et communiquent avec les autres acteurs. On peut exécuter ces applications de plusieurs manières : comme du logiciel tournant sur un processeur généraliste, sur des accélérateurs comme les GPU ou sous forme d'implantation matérielle que l'on peut utiliser sur FPGA.

L'objectif général de l'équipe CASH est de tirer parti des caractéristiques du matériel spécifique (processeur, accélérateur ou FPGA) pour compiler du logiciel ou du matériel efficace énergétiquement. L'objectif à long terme est de fournir des solutions pour les développeurs, pour leur permettre d'utiliser au mieux ces technologies émergentes.


Axes de recherche

  • Extraire des programmes flots de données depuis des applications séquentielles, tout en structurant les transferts de données.
  • Compilation et ordonnancement de programmes flot de données, en combinant les outils traditionnels dédiés au flot de données et des méthodes spécifiques comme le modèle polyédrique.
  • Analyse statique rapide pour des programmes généralistes, suffisamment efficace pour pouvoir analyser de gros programmes globalement.
  • Application des points précédents pour la synthèse de haut niveau, c'est-à-dire la génération de matériel depuis des programmes écrits dans des langages de haut niveau. Cette activité doit prendre en compte les contraintes liées au FPGA.
  • Simulation de systèmes logiciels/matériels : un environnement parallèle de simulation de systèmes sur puces hétérogènes, qui avec les résultats précédents, permettra un flot de développement de circuits complet.

Relations industrielles et internationales