CSW-2019-I-41 – OpenCL pour le processeur pluri-cœurs MPPA

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 :

Kalray a développé un support runtime du langage OpenCL-C  pour son processeur many-coeur MPPA.

Celui-ci permet le déploiement sur cible MPPA de noyaux de calculs écrits en OpenCL-C, autorisant ainsi un gain significatif en performance applicative. Ce runtime est optimisé pour permettre aux noyaux de calculs d’atteindre les performances crêtes du processor et de sa hiérarchie mémoire.

Ce travail sera réalisé sur cible réelle (dernière génération du processeur MPPA), constitué de 80 cœurs, gravé en 16nm et dédié de façon non exhaustive à de l’IA, traitement d’image, traitement du signal, traitement de paquets réseau, etc…

Étapes/Objectifs :

Vous intégrerez l’équipe « CoreSW low level », responsable du développement du runtime OpenCL. Votre mission sera la mise en œuvre d’une suite de tests pour valider la conformité du support OpenCL pour MPPA.

Le support OpenCL étant partiel et  l’architecture du MPPA étant très spécifique, vous aurez l’occasion de travailler à son amélioration, debug et optimisation dans un deuxième temps.

Compétences requises :

L’architecture du MPPA est originale: cœurs VLIW, hiérarchie mémoire complexe, grand nombre de cœurs organisés en clusters, et jeu d’instruction propriétaire. Vous devrez être en mesure de comprendre, analyser et débugger les noyaux de calculs à la fois au niveau OpenCL-C, mais également au niveau assembleur et bas niveau (transferts de données asynchrones, cohérence mémoire, synchronisations, etc. Le debug se fera sur cible réelle via un GDB connecté par JTAG.

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

A l’issue de la mission, vous aurez acquis des compétentes rares dans la programmation bas niveau d’un processeur  many-cores. Vous maitriserez également le langage OpenCL-C, les techniques de debug bas niveau via GDB+Jtag, la programmation C bas niveau, Assembleur VLIW, etc…

Durée souhaitée :  6 mois

Localisation : Sophia Antipolis (proche Nice)

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.