CTO-2019-I-30 – Compilation GLOW pour le processeur pluri-cœurs de Kalray

Entreprise :

Kalray (Euronext Growth Paris —FR0010722819 —ALKAL) est le pionnier des processeurs pour les nouveaux systèmes intelligents. Véritable rupture technologique, les processeurs « intelligents » ont la capacité d’analyser à la volée, et de manière intelligente, une très grande quantité d’informations, de prendre des décisions et d’interagir en temps réel avec le monde extérieur. Ces processeurs intelligents seront largement déployés dans des secteurs en forte croissance tels que les réseaux de nouvelle génération (data centers intelligents) et les véhicules autonomes, ainsi que les équipements de santé, les drones et les robots. L’offre Kalray comprend aussi bien des processeurs que des solutions complètes (cartes électroniques et logiciels). Créé en 2008 en tant que spin-off du CEA (Commissariat à l’énergie atomique et aux énergies alternatives), Kalray sert des clients tels que des fabricants de serveurs, des intégrateurs de systèmes intelligents et des fabricants de produits grand public incluant les constructeurs automobiles.

Contexte / Description du Projet :

Les processeurs de la société Kalray mettent en œuvre une architecture appelée MPPA (Massively Parallel Processor Array)[1]. Cette architecture est du type pluri-cœurs, car elle résulte de l’assemblage d’unités de calcul multi-cœurs appelées grappes de calcul autour de dispositifs de communication sur puce. La différence essentielle avec l’architecture GPGPU réside dans l’utilisation de cœurs généralistes, ainsi que dans la présence d’une mémoire de travail et d’un moteur de transfert de données DMA au sein de chaque grappe de calcul.

Les processeurs MPPA s’avèrent particulièrement efficaces en inférence neuronale. Pour ces applications, l’outillage de Kalray comprend un compilateur de haut niveau appelé KaNN (Kalray Neural Network compiler), qui lit des réseaux neuronaux entrainés au formats standard Caffe ou TensorFlow, et produit du code parallélisé au niveau des cœurs d’une grappe de calcul, ainsi qu’entre les grappes de calcul.

Le projet consiste à recibler sur le processeur MPPA le compilateur de réseau neuronaux GLOW[2] développé en open-source par Facebook, en s’appuyant d’une par sur le compilateur LLVM existant pour ce processeur, et d’autre part sur les librairies d’opérateurs neuronaux optimisés déjà développées pour le compilateur KaNN. GLOW est déjà utilisé en production par NXP, Intel, Marvell, Qualcomm, Cadence, etc.

[1] “Consolidating High-Integrity, High-Performance, and Cyber-Security Functions on a Manycore Processor”, DATE 2019

[2] “Glow: Graph Lowering Compiler Techniques for Neural Networks”, arXiv 2019  https://arxiv.org/pdf/1805.00907.pdf

Étapes/Objectifs :

  • Faire fonctionner GLOW avec le compilateur LLVM de Kalray pour le processeur MPPA.
  • Appuyer GLOW sur la librairie d’opérateurs neuronaux optimisés pour le processeur MPPA.
  • Transposer certaines techniques d’optimisation de l’outil KaNN dans le compilateur GLOW.

Compétences requises :

Développement C++, techniques de compilation, apprentissage automatique par réseaux profonds.

Compétences acquises à l’issue de la mission :

Maitrise des optimisations de calcul neuronal, des compilateurs GLOW et LLVM, de l’environnement OpenCL.

Durée souhaitée :  6 mois

Localisation : Montbonnot Saint-Martin (proche de Grenoble)

Date de démarrage souhaitée : courant 2020

Compensation : stage rémunéré

 

Your Name (required)

Your Email (required)

Job reference number (required)

Your CV (required - 1MB max.)

Your cover letter (required - 1MB max.)

captcha

     By completing and sending this form, you consent to your data being collected by authorized Kalray personnel to process your request. For more information, please consult our privacy policy on personal data protection.

Read about Kalray’s privacy policy and personal data protection here.