Accélération de l’algorithme de Smith-Waterman sur une carte FPGA PCIe

Proposition de stage

Accélération de l’algorithme de Smith-Waterman sur une carte FPGA PCIe

Proposition de stage

Prérequis Bonnes connaissances en langage VHDL, programmation C, C++
Connaissances générales en technologie FPGA et hardware (CPU, PCIe, DMA, mémoire DDR)
Durée 3 à 5 mois

Contexte :

Ce stage s’inscrit dans le cadre du projet de recherche européen POLCA (Programming Large Scale Heterogeneous Infrastructures) dont l’objectif consiste à élaborer un modèle de programmation adapté aux besoins des applications dans deux domaines différents : Le HPC (High Performance Computing) et les systèmes embarqués.
Ce modèle vise en particulier à faire des transformations de code par la réorganisation des traitements et des données, tenant compte des spécificités de la plateforme hardware cible, afin d’exploiter un maximum de parallélisme au niveau des algorithmes à implémenter.

Dans notre cas spécifique ici, nous nous intéressons particulièrement à l’amélioration d’une approche méthodologique partiellement outillée permettant d’exploiter au mieux les ressources des accélérateurs matériels à base de FPGAs.
En effet pour accélérer une application donnée avec un tel accélérateur installé sur port PCIe d’un PC, plusieurs tâches sont requises comme identifier les traitements à déporter sur FPGA, générer les interfaces entre le processeur hôte et le FPGA, compiler et produire les design côté FPGA et CPU, gérer les communications, adapter le code source initial, organiser les traitements et transferts et les synchroniser, etc.

Comme exemple d’application, nous avons sélectionné l’algorithme de Smith-Waterman : Algorithme connu en bio-informatique permettant de trouver des ressemblances locales entre séquences d’ADN ou nucléotides.

Travail à réaliser :

La première étape du stage couvre (a) l’étude de l’algorithme, ses paramètres et variantes d’implémentation dans la littérature scientifique et (b) la prise en main du l’environnement de développement (hardware et software)actuel : Carte FPGA, API, scripts de compilation, outil de génération C vers VHDL (ROCCC), etc.

Ensuite le stagiaire est en particulier amené à :

  • Proposer et décrire des approches d’implémentation de l’algorithme de Smith-Waterman tenant compte des spécificités du hardware cible
  • Réaliser une ou plusieurs implémentations paramétrables de l’algorithme de Smith-Waterman sur la plateforme en question.
  • Suggérer et implémenter des améliorations de la chaine d’outils en place : nouveaux scripts d’automatisation par exemple
  • Tester et évaluer les performances

En fonction l’avancement, une autre approche pour la génération du VHDL depuis pourra être considérée avec le compilateur Clash (Haskell vers VHDL)

Contact : Lotfi Guedria