Ingénieur(e) développement logiciel C++ pour l'Intelligence Artificielle (IA) frugale H/F

Détail de l'offre

Informations générales

Entité de rattachement

Le CEA est un acteur majeur de la recherche, au service des citoyens, de l'économie et de l'Etat.

Il apporte des solutions concrètes à leurs besoins dans quatre domaines principaux : transition énergétique, transition numérique, technologies pour la médecine du futur, défense et sécurité sur un socle de recherche fondamentale. Le CEA s'engage depuis plus de 75 ans au service de la souveraineté scientifique, technologique et industrielle de la France et de l'Europe pour un présent et un avenir mieux maîtrisés et plus sûrs.

Implanté au cœur des territoires équipés de très grandes infrastructures de recherche, le CEA dispose d'un large éventail de partenaires académiques et industriels en France, en Europe et à l'international.

Les 20 000 collaboratrices et collaborateurs du CEA partagent trois valeurs fondamentales :

• La conscience des responsabilités
• La coopération
• La curiosité
  

Référence

2023-27363  

Description de la Direction

La direction de la recherche technologique du CEA (DRT), dispose d'un portefeuille de technologies dans les domaines de l'information et de la communication, de l'énergie et de la santé. Interface entre la recherche et l'industrie nous avons pour mission la maturation et le transfert technologique, en allant de la preuve de concept théorique jusqu'au démonstrateur industriel, pour en faire bénéficier l'industrie.
Le CEA List, Laboratoire de recherche spécialisé dans les systèmes numériques intelligents est situé au cœur du pôle scientifique et technologique de Paris-Saclay.

Description de l'unité

Au sein du CEA List, le Laboratoire Intelligence Artificielle Embarquée (LIAE) au CEA LIST cherche à élargir son équipe qui a pour mission le développement de solutions innovantes pour l'IA embarquée. Il s'agit d'une équipe pluridisciplinaire, dont les compétences vont du développement des algorithmes et applications, à leur implémentation sur des composants matériels. Au cœur des développements de l'équipe se trouve notamment la plateforme logicielle open source de conception, d'optimisation et d'intégration de réseaux de neurones pour l'embarqué, N2D2 (https://github.com/CEA-LIST/N2D2). Déjà utilisée pour optimiser et implémenter des algorithmes pour de nombreuses applications (véhicule autonome, contrôle qualité, inspection de surface, analyse de signaux…), une nouvelle version majeure et innovante de N2D2 est actuellement développée avec le soutien d'un projet national d'envergure qui vient de démarrer (20 partenaires et 32M€ de budget pour une durée de 4 ans).

Description du poste

Domaine

Mathématiques, information  scientifique, logiciel

Contrat

CDD

Intitulé de l'offre

Ingénieur(e) développement logiciel C++ pour l'Intelligence Artificielle (IA) frugale H/F

Statut du poste

Cadre

Durée du contrat (en mois)

18

Description de l'offre

 

Au sein de cette équipe d'une trentaine de personnes, vos principales missions seront :

  • Contribuer aux spécifications et assurer certains développements (C++ et Python) de la plateforme N2D2, en y intégrant notamment des méthodes innovantes et/ou issues de l’état de l’art ;
  • Contribuer au maintien et à l’amélioration de l’infrastructure de compilation (CMake) et d’intégration continue (Gitlab CI/CD) ;
  • Adhérer à - et renforcer - les bonnes pratiques de développement (règles de codage, revue de code, documentation…) ;
  • Participer à l’animation de la communauté open source de la plateforme (réponses aux tickets, forum de discussion etc) ;
  • Contribuer au développement et à l’optimisation d’algorithmes pour l’IA embarquée en lien avec nos différentes équipes IA au CEA List ainsi que nos partenaires industriels ;
  • Participer à la dissémination de la plateforme et à la dissémination scientifique des résultats de recherches de l'équipe (contributions aux publications dans des conférences internationales) et à la valorisation de nos innovations (rédaction de brevets).

Dans l’exercice de votre mission, vous serez également amené(e) à :

  • Développer une expertise sur certains sujets de recherche abordées dans le projet et dont les algorithmes devront être implémentés dans les règles de l’art dans la plateforme (compression / quantification de l’information dans les réseaux de neurones, optimisation topologique, robustesse et explicabilité…) ;
  • Mettre en place des méthodologies de développement et de comparaison pour nos partenaires et/ou vis-à-vis de l’état de l’art ;
  • Interagir avec d’autres équipes du CEA List sur des projets transverses.

Pour mener à bien votre mission, vous bénéficierez au CEA LIST d’un environnement de premier plan avec notamment l’accès à Factory-IA, une plateforme de calcul de dernière génération péta-flopique comptant une trentaine de nœuds de calcul, et plus de 200 cartes GPU, dont une partie de toute dernière génération (GPU A100 de NVidia).

Vous intégrerez également une équipe dynamique, au cœur de l’écosystème IA en France, qui a noué des liens privilégiés avec les principaux acteurs industriels et académiques du domaine. 

#CEA-List CDI CDD ; #IALIST

Profil du candidat

Vous êtes titulaire d’un diplôme d’ingénieur / de master en mathématique, informatique ou génie logiciel avec éventuellement une spécialisation ou expérience dans le domaine de la compilation, de l’intelligence artificielle ou des systèmes embarqués.

Vous avez acquis les compétences techniques suivantes :

  • Une bonne maitrise du langage C++ (C++14 / C++17), de sa librairie standard et des bonnes pratiques de développement en C++ ;
  • La maitrise des outils et flots de développement logiciel : compilation (CMake), gestion de version (Git), sur Linux et/ou Windows ;
  • Une bonne compréhension de certaines techniques ou algorithmes classiques d’optimisation, d’apprentissage machine et/ou de réseaux de neurones.

Autres expériences et/ou compétences qui seraient également appréciées (sans besoin d’être exhaustif) :

  • Une connaissance au moins théorique des processus de compilation (parsing, transformation, représentation intermédiaire…) ;
  • Une expérience de conception d’algorithmes et/ou d’applications avec une librairie d’apprentissage profond (PyTorch, Keras, N2D2…) ;
  • La maitrise d’un ou plusieurs modèles de programmation parallèle : OpenMP, CUDA et/ou OpenCL ;

Des notions d’architecture de calculateurs embarqués (type de jeux d’instructions, hiérarchie mémoire…).

Localisation du poste

Site

Saclay

Localisation du poste

France, Ile-de-France, Essonne (91)

Ville

  Palaiseau

Demandeur

Disponibilité du poste

01/07/2023