Contexte et travaux :

Il existe plusieurs langages pour programmer / configurer un FPGA. Les langages initiaux comme VHDL et Verilog ont été rejoints par le langage C (via la synthèse de haut niveau ou HLS) et OpenCL (pour ses capacités multiplateformes).L’équipe Syel du département SoC du LIP6 mène des recherche autour de trois degrés d’optimisation:

• Optimisation de code en VHDL,
• Optimisation de code en C + HLS,
• Optimisation de code en OpenCL,

Les objectifs de cette étude sont d’évaluer ces différentes méthode  afin de déterminer leurs champs d’utilisation.

Pour cela le travail est décomposé en 2 étapes. La première étape consiste à réaliser différentes implémentations d’un même algorithme et analyser les performances obtenues. C’est un travail itératif où chaque implémentation devra permettre d’en réaliser une plus efficace, ou au contraire si on estime que les performances crêtes sont atteintes, de l’expliquer. Les optimisations viseront plusieurs critères antagonistes comme la surface, la consommation, la vitesse. Les algorithmes à implémenter sont des algorithmes de cryptographie : SHA et AES. La seconde étape consiste à concevoir une implémentation parallèle de ces algorithmes c’est à dire utiliser la surface totale du FPGA pour instancier le plus grand nombre possible d’algorithmes avec deux objectifs: aller le plus vite possible ou consommer le moins.

Pour mener à bien ces travaux, le LIP6 recherche un post-doctorant pour une durée d’un an. Le démarrage du projet doit intervenir entre janvier et avril 2018.

Compétences nécessaires :

Bonne connaissance en algorithmique et dans l’un des 3 langages. Des bases en architecture et en compilation seront un plus.

Personnes à contacter :

• Julien Denoulet : julien.denoulet@lip6.fr
• Bertrand Granado : bertrand.granado@lip6.fr