Intégration dans un flot de conception système d'un outil de traduction assistée de code C pour la création de coprocesseurs matériels

Arnaud Desaulty

Mémoire de maîtrise (2016)

Accéder à ce document
Disponible
Libre accès au texte intégral dans PolyPublie
Texte Texte • 2MB •

Résumé

Depuis les débuts de la conception de systèmes électroniques, un des buts de la recherche est de fournir des outils et méthodes de travail de plus en plus puissants et rapides. Ceci est illustré très explicitement dans le fossé qui sépare la croissance du nombre de transistors par puce de la croissance du nombre de transistors intégrés par ingénieur par mois. Au cours des années se sont alors développées des méthodes permettant à un concepteur d'abstraire de plus en plus son travail afin de faciliter l'intégration et la distribution de composantes matérielles. À ces abstractions de description viennent s'ajouter des outils automatisant certaines parties du travail d'un concepteur. C'est par exemple le cas de la synthèse haut-niveau, qui permet de synthétiser des algorithmes de manière guidée. Enfin, de nombreux flots de travail ont aussi vu le jour afin de fournir une méthodologie dans la conception de systèmes électroniques. Le flot que nous retiendrons est le flot niveau système électronique (ESL) qui décrit une méthode de développement incrémentale partant d'une description la plus abstraite possible. Les abstractions sont itérativement relâchées pour finalement arriver à une description matérielle. Toutefois, il n'existe pas d'outil complet intégrant toutes les étapes du flot ESL. Nous proposons donc un outil de traduction assistée de code C afin de compléter un flot de conception ESL dans le cadre de la création de coprocesseurs matériels. L'outil proposé, C2Space, permet la transition d'un code C séquentiel vers un code organisé en modules SpaceStudio de manière rapide et configurable. Cet outil de traduction, basé sur le transpilateur Clang, procède à l'analyse statique du code pour effectuer les choix de traduction appropriés. C2Space permet l'intégration en amont du flot d'une solution d'analyse dynamique de code C, appelée Pareon Profile. Pareon permet une première analyse du code séquentiel afin de repérer rapidement les portions du code susceptibles de profiter d'un passage sur coprocesseur (de par leur potentiel de parallélisme et leur poids dans l'exécution séquentielle). Une fois la traduction effectuée, le reste du flot est supporté par l'environnement de codéveloppement SpaceStudio, qui permet alors de procéder à l'exploration architecturale du code traduit. Il est alors possible de tester différents schémas d'allocation des modules aux ressources matérielles (processeurs, coprocesseurs). Les modules alloués en matériel sont alors synthétisés à l'aide d'un logiciel de synthèse haut-niveau. Le système complet peut ensuite être exporté vers une des plateformes matérielles supportées (par exemple, pour FPGA Xilinx). Nous avons confronté ce flot à un algorithme de détection de contours (filtre de Canny) afin d'en tester l'efficacité. Les résultats montrent que l'approche proposée permet un raffinement rapide de l'algorithme, de sa définition logique jusqu'à son implémentation. Nous n'avons pu accélérer, comme envisagé initialement, la vitesse d'exécution de l'algorithme, mais nous avançons plusieurs pistes pour expliquer ces résultats. Nous proposons une série de recommandations visant à améliorer à la fois C2Space et le flot proposé. Nous décrivons notamment l'utilisation d'une nouvelle métrique très tôt dans le flot de conception mettant en relation (1) le potentiel de parallélisme d'un segment de code, (2) la portion du temps d'exécution global de ce segment, (3) le coût de communications processeur/coprocesseur pour ce segment et (4) le temps d'exécution logiciel de cette même portion de code.

Programme:
Génie informatique
Directeurs ou directrices:
Adresse URL de PolyPublie:
Université/École:
École Polytechnique de Montréal
OAI:
oai:publications.polymtl.ca:2285
ORCID
Date du dépôt:
06 mars 2017 11:39
Dernière modification:
14 oct. 2026 10:39
Citer en APA 7:
Desaulty, A. (2016). Intégration dans un flot de conception système d'un outil de traduction assistée de code C pour la création de coprocesseurs matériels [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/2285/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document
Afficher document