Internship : ingénieur: ML applications C code generation

The scope of this internship is the real-time implementation of off-line trained machine learning algorithms on avionics embedded platforms. The workflow for developing such algorithms consists essentially of two parts: the design and the deployment. The design phase comprises the machine learning model configuration and training. The result of this phase is the inference model, which will be the input for the deployment phase. The deployment phase consists in coding the inference model in an adequate programming language and porting the code on the target hardware. We focus on the deployment phase.

Avionics systems are subject to certification, meaning that the development must be done following some standards such as the DO178-C [1] and the current draft AS6983 [2]. The two latter standards impose strong guarantees on the quality of the code and expect the designer to 1) ensure traceability between the requirements and the (source) code; 2) compute the Worst Case Execution Time, that is, assess the maximal number of cycles required to execute a sequential program, and 3) run intensive testing to verify the compliance of the implementation to the requirements. 

Missions:

To answer these initial questions we developed ACETONE [3], a framework capable of automatically generating a functionally equivalent and time-predictable C code from feed-forward neural networks. The current version is only for single-core, with no deep learning accelerators and no parallelization.

The objective is of the internship is to improve ACETONE while preserving a behaviour equivalent to the specification. More precisely the student will work on the extension of ACETONE in order to:

  • Optimize the routines employed in the neural network’s functions, primarily  matrices computations
  • Explore the usage of intrinsic functions, in particular for vectorization and parallelization
  • Add support to other types of layers (functions) that can be found in neural networks.

Technical requirements

Embedded systems or related areaLanguages : C and PythonSome knowledge in machine learning

Profile : Étudiant(e) Master 2 ou dernière année d’école d’ingénieur en microélectronique (conception numérique)

Cross-functional skills

Good level of english is required

Type de contrat : stage

Durée du contrat : 6 mois

Salaire : 600 €/mois

Niveau d’études requis : Bac+5

Expérience : non

Lieu de travail : ONERA (Toulouse)

Quotité du travail : 100%

Supervision :
Iryna De Albuquerque (ONERA), Adrien Gauffriau  (Airbus),  Claire Pagetti (ONERA) and Thomas Carle (IRIT)

Pour postuler

Adresser CV + lettre de motivation :

Iryna De Albuquerque

Claire Pagetti

Thomas Carle


Stage ingénieur : développement d’une plateforme d’injection de fautes pour les accélérateurs matériels de réseaux de neurones.

Le nombre croissant d’applications critiques pour la sécurité intégrant des réseaux de neurones profonds (DNN) dans le domaine automobile pose de nouveaux défis en matière de sécurité, notamment en ce qui concerne leur mise en œuvre (c’est-à-dire la détection et l’atténuation des pannes aléatoires matérielles). Dans le domaine automobile, la norme ISO 26262 résume les propriétés de sécurité telles que l’absence de point de défaillance unique.

Pour relever ce défi, le service central de sûreté de fonctionnement, basé à Toulouse, en charge de la sécurité fonctionnelle des composants matériels et logiciels NXP propose un stage de master de six mois portant sur l’évaluation de la robustesse de l’accélérateur matériel de DNN de NXP par injection de fautes . 

Le stage sera coordonné avec le laboratoire ONERA et le stagiaire aura accès aux outils NXP.

Missions

L’objectif principal du stage est de concevoir un cadre d’évaluation de la robustesse des accélérateurs DNN basé sur l’injection de fautes pour les produits NXP dédiés aux applications critiques pour la sûreté de fonctionnement.

Ce cadre s’inspirera d’une plate-forme d’injection de fautes existante basée sur l’intégration de saboteurs dans la conception RTL initiale d’un accélérateur de réseaux de neurones. Le/La stagiaire devra concevoir une extension de cette plate-forme adaptée aux accélérateurs DNN complexes et reconfigurables .

  • Le premier objectif est de concevoir l’extension à l’aide des langages de programmation VHDL/Verilog, de l’implémenter sur la carte FPGA Xilinx Virtex Ultrascale et de la valider sur un cas d’utilisation LeNet5 simple.
  • Le deuxième objectif est d’explorer les capacités du framework Scala Chisel à implémenter un framework générique et extensible permettant la génération automatique de la plateforme d’injection de fautes, l’exécution de la campagne d’injection de fautes et le post-traitement des résultats des injections.

Vous êtes : Étudiant(e) Master 2 ou dernière année d’école d’ingénieur en microélectronique (conception numérique)

Compétences techniques et connaissances

  • Bonne connaissance des systèmes sur puce Langages de description du matériel : VHDL, Verilog ou SystemVerilog
  •  Des notions en tests et en vérification sont un plus
  • Connaissance des outils de synthèse pour FPGA (ex Xilinx Vivado,…)
  • Langage Python, C
  • La connaissance de Scala ou d’un langage de programmation fonctionnel est un plus

Compétences transverses

Un bon niveau d’anglais est requis. Travail dans une équipe internationale multi-sites

Type de contrat : stage

Durée du contrat : 6 mois

Salaire : 600 €/mois

Niveau d’études requis : Bac+5

Expérience : non

Lieu de travail : NXP Semiconductors, Toulouse

Quotité du travail : 100%

Supervision :
Iban Guinebert (ONERA/NXP)
Andres BARRILADO (NXP)
Kevin Delmas (ONERA)
Claire Pagetti (ONERA)

Pour postuler

Adresser CV + lettre de motivation :

Iban Guinbert and
Kevin Delmas


Application process

To apply, please send your CV, cover letter et transcripts (marks) of the last 2 years to joris.guerin@ird.fr, kevin.delmas@onera.fr et jeremie.guiochet@laas.fr


Ne manquez rien !

Inscrivez-vous pour recevoir l'actualité d'ANITI chaque mois.

Nous n’envoyons pas de messages indésirables !

en_GBEnglish