Prise en compte de la contrainte de mémoire de programme dans un flot de compilation pour CGRA
Résumé
Les architectures reconfigurables à gros grains (CGRA) émergent comme des alternatives cré-dibles pour du calcul faible consommation de part la forte accélération des calculs qu'elles ap-portent. Elles sont constituées de nombreuses unités de calculs élémentaires, interconnectées par un réseau simple. Lorsque les CGRAs sont faiblement couplés à un processeur, leurs uni-tés de calcul sont rendues autonomes grâce à une mémoire de contexte (c.-à-d. de programme). Toutefois, la surface et l'efficacité énergétique de ces architectures sont fortement impactées par la taille de cette mémoire de programme. En effet, une mémoire de 64 mots par exemple repré-sente 40% de la surface d'une seule unité de calcul. Les approches de compilation classiques ne prennent pas en compte la taille de cette mémoire, et le CGRA est alors surdimensionné en considérant la taille nécessaire la plus grande, ce qui dégrade considérablement les performances énergétiques et l'intérêt même de ces architectures pour des noyaux de calcul intensif. Dans cet article, nous proposons une approche de compilation d'applications sur CGRA qui prend en compte cette contrainte. Pour cela, nous proposons de garder les solutions permet-tant une meilleure répartition des instructions sur l'ensemble des unités de calcul grâce à quatre nouvelles étapes dédiés : un parcours spécifique des blocs linéaires d'instructions composant l'application, un élagage approximatif et un élagage exact des solutions partielles de projection, et une gestion du taux de remplissage des mémoires de programme. Cette approche permet de réduire la surface globale de l'accélérateur et d'améliorer son efficacité énergétique. Les ré-sultats montrent un gain énergétique de 2,3× en moyenne (avec un maximum de 3,1× et un minimum de 1,4×), par rapport à une approche sans contrainte, tout en utilisant 2 fois moins de mémoire. Comparé à un processeur de type OpenRisc, les gains énergétiques atteignent 14× (avec un maximum de 23× et un minimum de 5×). Ce résumé est une traduction courte du papier accepté à la conférence DATE 2019 [1].