Kalray est une entreprise leader du développement des processeurs « massivement parallèles ».
Le MPPA® est un processeur « manycore » dont l’architecture révolutionnaire présente plusieurs centaines de cœurs fonctionnant en parallèle et délivrant à fois haute performance, faible consommation et faible latence. Cette architecture est particulièrement efficace pour l’accélération des « Data Centers » ainsi que pour les applications embarquées critiques du futur, par exemple celles des voitures autonomes.
Nos clients et partenaires à travers le monde sont les leaders de leur industrie.
Kalray développe également des cartes électroniques basées sur le MPPA® ainsi qu’un Kit de développement logiciel (SDK) et les outils logiciels permettant à nos clients de développer leurs propres applications.
Kalray, c’est un environnement de start-up, avec une communauté unie et un fort esprit d’entre-aide.
CONTEXTE DU STAGE
Au sein de l’équipe Embarqué (EMBU), plusieurs services et bibliothèques (libraries) sont développés et intégrés dans Kalray Acceleration Framework (KAF) pour faciliter la programmation sur MPPA®. Parmi ces services, les bibliothèques de calcul d’algèbre linéaire (BLAS, LAPACK, Eigen) et de traitement de signal (FFT) sont en cours de développement et optimisation afin d’exploiter au maximum la capacité de calcul de MPPA®.
Nous cherchons, pour un stage de 6 mois ou projet de fin d’études, un(e) candidat(e) intéressé(e) par le calcul parallèle et l’optimisation de code (profiling, vectorisation etc.) pour renforcer notre équipe et améliorer la performance de nos produits.
MISSIONS ET OBJECTIFS DU STAGE
- Proposer et optimiser des kernels de calcul dans nos bibliothèques mathématiques
- Portage et test des bibliothèques open-source (LAPACK, Eigen, FFTW) sur le processeur MPPA® en proof-of-concept
- Vérification de l’exactitude du calcul. Mettre en place l’intégration continue dans l’environnement Kalray, rapport suivi de performance
- Identifier des goulots d’étranglement de performance, analyser et proposer des solutions d’optimisation
- Optimisation de code en employant plusieurs techniques (communication asynchrone, vectorisation SIMD, cache-blocking, register-blocking, software-pipeling)
- Documentation, développement en cycle de V, reporting hebdomadaire
- Utilisation des outils standard du domaine (OpenCL, OpenMP, Pthreads, compilateur GCC/LLVM, assembleur
Suivant la durée du stage, nous adapterons le périmètre des bibliothèques ciblées
CANDIDAT
Etudiant(e) en 4e / 5e année d’école d’ingénieur ou Master universitaire, en informatique industrielle ou embarqué, vous disposez des compétences suivantes :
- Maitrise du langage C/C++, rigoureux et autonome
- Motivation en programmation bas-niveau et écriture de code en assembleur
- Connaissance des langages de programmation parallèle : CUDA, OpenCL, OpenMP, Pthreads etc. (vous aideront beaucoup pendant le stage)
- Seraient un plus : Connaissance des outils de build (Makefile, CMake, autoconf etc.), Connaissance des langages de script (bash, ruby, python)
Date de démarrage : A définir selon vos disponibilités
Durée du stage : 6 mois ou PFE
Localisation : Kalray, 180 avenue de l’Europe, 38330 Montbonnot-Saint-Martin (ligne bus C1 – Arrêt Baudonnière)
Stage rémunéré
Read about Kalray’s privacy policy and personal data protection here.