Description du poste
:
Les calculs des réseaux de neurones sont historiquement faits dans le format 32 bits classique. L'essor récent de ces réseaux et leur complexité grandissante ont conduit à explorer d'autres formats de données, à même de réduire les temps de calcul, la mémoire utilisée et la consommation électrique. Les derniers développements dans ce domaine ont conduit à l'utilisation du format FP8 [1], où un nombre est encodé sur 8 bits. En pratique, le format FP8 se décompose en deux encodages : E4M3 (4 bits d'exposant, 3 de mantisse), utilisé pour l'inférence ; et E5M2, utilisé pour l'apprentissage.
Le but de ce stage est d'implémenter ce format numérique dans la plateforme logiciel open-source Aidge, développée par les équipes du CEA et dédiée à la conception, la manipulation et l'export de réseaux de neurones, en particulier sur des cibles embarquées [2].
Les attendus du stage sont donc :
1. La définition des nouveaux formats FP8 dans Aidge, qui se fera en choisissant une implémentation déjà existante et en l'intégrant dans la plateforme.
2. L'implémentation de noyaux de calculs (sur CPU, uniquement en inférence) utilisant ce format.
3. L'implémentation de noyaux de calculs CUDA (à la fois pour l'entraînement et l'inférence) utilisant le FP8.
4. L'entraînement de bout en bout d'un réseau de neurones en FP8 avec Aidge
5. (Bonus) Si le temps le permet, des sujets annexes peuvent être abordés, principalement les arrondis stochastiques et la prise en compte du facteur de scaling dans les noyaux de calculs.
En fonction des attendus de votre école, les sujets pourront être discutés.
[1] : Micikevicius, Paulius, Dusan Stosic, Neil Burgess, et al. “FP8 Formats for Deep Learning.” arXiv:2209.05433. Preprint, arXiv, September 29, 2022.
[2] :
Moyens / Méthodes / Logiciels Ferme de calcul FactoryIA Profil du candidat
Qu’attendons-nous de vous ?
Vous êtes étudiant(e) en dernière année d’école d’ingénieur ou de master en
informatique (M2). Vous êtes curieux(se), rigoureux(se) et appréciez travailler
sur des problématiques techniques et concrètes.
Vous possédez des connaissances en C++(14), avec une première expérience significative (projet académique, personnel ou stage), et vous maîtrisez Git. Des notions en réseaux de neurones et l'utilisation de frameworks tels que PyTorch, TensorFlow seraient appréciées.
Rejoignez-nous, venez développer vos compétences et en acquérir de nouvelles !
Vous avez encore un doute ? Nous vous proposons :
6. L'opportunité de travailler au sein d'une organisation de renommée mondiale dans le domaine de la recherche scientifique,
7. Un environnement unique dédié à des projets ambitieux au profit des grands enjeux sociétaux actuels,
8. Une expérience à la pointe de l’innovation, comportant un fort potentiel de développement industriel,
9. Des moyens expérimentaux exceptionnels et un encadrement de qualité,
10. De réelles opportunités de carrière à l’issue de votre stage
11. Un poste au cœur de la métropole grenobloise, facilement accessible via la mobilité douce favorisée par le CEA,
12. Une participation aux transports en commun à hauteur de 85%,
13. Un équilibre vie privée – vie professionnelle reconnu,
14. Un restaurant d'entreprise,
15. Une politique diversité et inclusion,
Conformément aux engagements pris par le CEA en faveur de l'intégration des personnes handicapées, cet emploi est ouvert à toutes et à tous. Le CEA propose des aménagements et/ou des possibilités d'organisation pour l'inclusion des travailleurs handicapés.
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.