2019-02255 - Développement FPGA et embarqué pour l'audio

Type de contrat : CDD

Contrat renouvelable : Oui

Niveau de diplôme exigé : Bac + 5 ou équivalent

Autre diplôme apprécié : thèse

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : De 3 à 5 ans

A propos du centre ou de la direction fonctionnelle

Le centre de recherche Inria Grenoble Rhône-Alpes regroupe un peu moins de 800 personnes réparties au sein de 39 équipes de recherche et 8 services support à la recherche.

Son effectif est distribué sur 5 campus à Grenoble et à Lyon, en lien étroit avec les laboratoires et les établissements de recherche et d'enseignement supérieur de Grenoble et Lyon, mais aussi avec les acteurs économiques de ces territoires.

Présent dans les domaines du logiciel, du calcul haute performance, de l'internet des objets, de l'image et des données, mais aussi de la simulation en océanographie et en biologie, il participe au meilleur niveau à la vie scientifique internationale par les résultats obtenus et les collaborations tant en Europe que dans le reste du monde.

Contexte et atouts du poste

Contexte du travail

Récemment, l'équipe Socrate a entamé une collaboration avec les chercheurs du groupe GRAME. GRAME est un "Centre National de Création Musicale'' (CNCM) organisé en trois départements: production musicale, transmission / médiation et recherche en informatique musicale. Les quatre chercheurs de GRAME ont une expertise en informatique (compilation), DSP audio, lutherie numérique et HCI (Human Computer Interaction) en général. GRAME est l'inventeur de Faust, un langage spécifique pour le traitement du signal audio. Faust est principalement développé au GRAME et par une communauté mondiale, il est basé sur un compilateur ``traduisant'' les spécifications DSP écrites en Faust dans un large éventail de langages de niveau inférieur (par exemple, C, C ++, Rust, Java, WASM, LLVM bitcode, etc.). Les chercheurs de GRAME ont été associés au CITI en tant que membres externes en septembre 2019.

Socrate et GRAME ont entamé une collaboration à travers un projet de la Fédération Informatique de Lyon (Syfala: synthèse audio faible latence sur FPGA). L'objectif de Syfala est de concevoir une plate-forme basée sur FPGA pour le traitement numérique du signal audio (DSP) ultra-faible latence programmable à haut niveau avec Faust et utilisant le logiciel FloPoCo de Socrate (http://flopoco.gforge.inria.fr). Cette plate-forme est destinée à être utilisable pour diverses applications allant de la synthèse et du traitement du son au contrôle actif du son et à l'acoustique d'un champ sonore artificiel ou d'une pièce.

Objectifs techniques

Le travail proposé ici est de gérer la chaîne d'outils de compilation de Faust vers FPGA, ou plus spécifiquement du traitement audio écrits en C++ au bitstream FPGA en utilisant les toolchain VivadoHSL et vivado. L'ingénieur travaillera sur différent composants de la chaîne d'outils et proposera successivement (en utilisant l'outil git) plusieurs optimisations pour rendre la compilation de Faust vers FPGA compétitive. En plus de cela, nous prévoyons d'utiliser ce nouveau flux de compilation FPGA pour:

  • concevoir un module programmable de traitement/synthétis de son pour les musiciens,
  • créer un système pour modifier activement l'acoustique d'une salle de concert pour la rendre "modulaire''
  • modifier activement les propriétés acoustiques des instruments de musique acoustiques.

En pratique ...

Le travail se déroulera dans le cadre d'une collaboration entre Grame et Citi, la plupart du temps l'ingénieur sera basé à Citi, mais une réunion régulière (environ toutes les deux semaines) aura lieu. La position est de 13 mois avec les opportunités probables suivantes car Socrate et Grame sont en train de créer un nouveau projet Inria.

 

Mission confiée

Missions :

Socrate et Grame ont mis en place une première version d'une chaîne d'outils automatique complète de Faust vers un FPGA pour des  programmes Faust simples (traitement audio Faust sur entrée stéréo sans  contrôleurs), il y en a beaucoup plus étapes d'ingénierie qui doivent être réalisées avant d'obtenir un outil vraiment utilisable, ce sont:

1) Intégrer l'interface homme-machine (c'est-à-dire les ``contrôleurs/sliders'' de Faust) à la conception du FPGA. Actuellement, il n'y a aucun moyen d'interagir avec le son sortant de la carte, cela pourrait se faire de deux manières:

  • Dans le matériel (à l'aide des boutons)
  • Dans le logiciel (sur le Linux embarqué sur ARM)

2) Intégrer le traitement audio multicanal (GPIO supplémentaire utilisé à bord)
3) Intégrer des puces audio à faible latence pour remplacer la puce audio SSM.
4) Utiliser la RAM disponible pour implémenter des lignes à retard sur la carte Zybo (plutôt que la RAM du bloc FPGA).
5) Fournir des démonstrateurs efficaces

  • Instruments numériques
  • Contrôle sonore actif pour l'acoustique

Principales activités

Plan de travail proposé

Le plan de travail proposé pour le futur ingénieur ADT est le suivant:

  • Tout d'abord, se familiariser avec les technologies utilisées (Faust, Xilinx VivadoHLS, traitement du signal audio, environnement de programmation matériel-logiciel Xilinx FPGA utilisant le processeur ARM sur puce): entre 1 et 2 mois.
  • Consolider et optimiser le flux de compilation de base de Faust en utilisant la mémoire intégrée pour stocker des échantillons audio et des FPGA BRAM pour stocker des paramètres constants et des valeurs de contrôleurs: 2 mois.
  • Proposer un moyen automatique de compiler vers les programmes Faust FPGA avec des contrôleurs matériels (c'est-à-dire des boutons): 2 mois
  • Réaliser une démonstration solide qui présente la possibilité du nouveau flux de compilation: 4 mois.
  • Étudier comment FloPoCo peut être utilisé pour optimiser le calcul dans l'IP Faust (temps restant)

Compétences

Les compétences principales demandées sont:

  • Une bonne maîtrise de l'anglais
  • Une formation de base en electronique et traitement du signal avec une connaissance de la programmation de FPGA
  • Un connaissance solide en programmation embarquée, compilation et des rudiment d'adminstration linux  (développement sous linux)
  • La maîtrise du langage C ainsi que des bases solides en architecture des ordinateurs sont necessaire.

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
  • Possibilité de télétravail (après 6 mois d'ancienneté) et aménagement du temps de travail
  • Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
  • Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
  • Accès à la formation professionnelle
  • Sécurité sociale

Rémunération

Selon expérience