Postée il y a 24 heures
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 coeur 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é
Rejoignez le CEA pour donner du sens à votre activité, mener ou soutenir des projets de R&D nationaux et internationaux, cultiver et faire vivre votre esprit de curiosité.
EN SYNTHESE, QU'EST-CE QUE NOUS VOUS PROPOSONS ?
Nous cherchons un(e) développeur -développeuse C++ expérimenté(e) - ingénierie logicielle & optimisation pour l'IA embarquée pour le CEA/DRT/List (Direction de la Recherche Technologique).
Ce poste de cadre en CDD de 18 mois est basé sur le site Nano-Innov de Paris-Saclay, Essonne (91). Ce poste est à pourvoir dès que possible.
QU'ATTENDONS-NOUS DE VOUS ?
Vous intégrerez une équipe pour travailler sur du code open source, et gagner en visibilité et notoriété auprès de l'ensemble des partenaires du projet (plus de 40), allant de la start-up à plusieurs grands groupes. C'est également une occasion pour vous de monter en compétence sur la compréhension des modèles d'IA et aux problématiques liées à leur déploiement, dans un domaine aujourd'hui stratégique et extrêmement prisé !
Vos principales missions seront :
Contribuer au développement du coeur de la plateforme Aidge, 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).
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.
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 noeuds 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 coeur 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 Tech Corporate from CEA Tech on Vimeo.
#CEA-List ; #AI ; #LI-CB1 ; #Engineer ; #Researcher ; #Embedded AI
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.
Aucune connaissance préalable en intelligence artificielle n'est requise : ce sont avant tout votre expérience, vos compétences et votre motivation en programmation C++ (y compris les enjeux d'ingénierie logicielle et d'optimisation bas niveau) qui sont essentielles !
Vous avez acquis les compétences techniques suivantes :
Une bonne maîtrise du langage C++ (C++14 / C++17), de sa librairie standard et des bonnes pratiques de développement en C++ ;
La maîtrise 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) ;
La maîtrise d'un ou plusieurs modèles de programmation parallèle : OpenMP, CUDA et/ou OpenCL ;
Des notions d'architecture de processeurs (type de jeux d'instructions, hiérarchie mémoire).
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.
Aucune connaissance préalable en intelligence artificielle n'est requise : ce sont avant tout votre expérience, vos compétences et votre motivation en programmation C++ (y compris les enjeux d'ingénierie logicielle et d'optimisation bas niveau) qui sont essentielles !
Vous avez acquis les compétences techniques suivantes :
Une bonne maîtrise du langage C++ (C++14 / C++17), de sa librairie standard et des bonnes pratiques de développement en C++ ;
La maîtrise 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) ;
La maîtrise d'un ou plusieurs modèles de programmation parallèle : OpenMP, CUDA et/ou OpenCL ;
Des notions d'architecture de processeurs (type de jeux d'instructions, hiérarchie mémoire).