Service Communautaire d'Information sur la Recherche et le Développement - CORDIS

Aider les ingénieurs en logiciel à choisir le bon matériel

Les développeurs de logiciels ont souvent peu d'expérience dans la conception du matériel et de l'architecture système. Un outil innovant fait donc le pont entre la fonctionnalité souhaitée et son implémentation matérielle.
Aider les ingénieurs en logiciel à choisir le bon matériel
La conception électronique au niveau du système est une méthodologie innovante de développement et de vérification de semi-conducteurs, doté d'un grand potentiel pour aider les développeurs de logiciels par la conception automatisée de modules matériels destinés à la représentation globale d'une tâche. Cependant, les outils requis pour communiquer entre les diverses couches d'abstraction sont essentiellement absents, ce qui augmente le délai de mise sur le marché.

Des scientifiques cherchent à appliquer le traitement de flux et le parallélisme des données afin de voir une application comme plusieurs unités de calcul séparées (des kernels) sans gérer explicitement les communications entre elles. Ils ont travaillé dans le cadre du projet ESL_STR («Automatic hardware generation using the stream programming paradigm»), financé par l'UE. Ils ont basé leur étude de cas sur un FPGA (réseau de portes programmables in situ) qui peut être 'programmé' par l'utilisateur sur site après sa fabrication, 'recâblant' le circuit intégré sur la puce pour réaliser la fonctionnalité voulue.

Les chercheurs ont réalisé un outil de CAO (conception assistée par ordinateur) afin de générer la conception du coprocesseur pour un FPGA. L'outil utilise OpenCL (Open Computing Language) un environnement standard de programmation pour écrire des programmes destinés à des architectures informatiques hétérogènes composées de l'hôte (le processeur central ou CPU) et d'un périphérique (ou processeur de traitement graphique, GPU). La version d'ESL_STR, dénommée SopenCL (pour silicon OpenCL), implémente sur un FPGA reconfigurable le parallélisme (traitement multiprocesseur) d'une application. Un compilateur de langage de haut niveau (HCL) partitionne les kernels de l'application OpenCL entre le CPU, le GPU et le FPGA. Un compilateur bas niveau (LLC) se charge des kernels qui ont été sélectionnés pour tourner sur la plateforme FPGA, générant une conception matérielle équivalente qui répond aux besoins en performance.

L'outil ESL_STR ouvre la voie à la portabilité du code entre différentes plateformes multiprocesseurs, qu'elles utilisent des architectures figées ou reconfigurables. Ceci promet de rendre des technologies innovantes comme les FPGA très intéressantes en matière d'informatique hautes performances.

Informations connexes