Vous rejoignez l'équipe en charge du développement d'un outil permettant de porter un réseau de neurones pré-entrainé sur la cible processeur multi-coeurs.
Ceci pour n'importe type de réseau, à la manière d'un compilateur : transcrire l'expression du réseau en briques d'opérations unitaires qui pourront ensuite être implémentées sur la cible processeur.
Dans l'équipe, vous participerez à l'écriture des librairies de blocs de base sur lesquels s'appuie le compilateur pour transcrire le réseau de neurones.
Ces briques constituent des opérations élémentaires et des flots d'opérations pouvant être séquencées et parallélisées pour déployer le réseau de neurones sur la cible multi-CPU.
Quelques exemples de ces briques de base (non exhaustif) : des convolutions, opérations matricielles, FFT, MAC, opérations mémoires spécifiques etc...
Vous interviendrez dans :
- l'écriture et l'optimisation de ces briques, avec l'objectif de réduire au maximum les cycles d'horloge et la consommation des ressources.
- l'écriture des tests de performance et le support aux équipes benchmark
- les choix stratégiques concernant la librairie, notamment sur le choix des nouvelles fonctionnalités à inclure pour s'adapter aux nouveaux réseaux de neurones, tout en gérant les rétrocompatibilités.
Pour cela, vous serez au plus près de l'architecture matérielle du processeur. Vous travaillerez en C et C++, avec régulièrement des optimisations à effectuer au niveau assembleur.
Attendez-vous à un poste dynamique, car en constante évolution avec les avancées des réseaux de neurones !
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.