Les publications dont je suis fier

On m’a demandé récemment quelles sont les 3 publications dont « tu est le plus fier ». En y réfléchissant ce ne sont pas des articles qui ont eu le meilleur nombre de citation, ni forcément ceux dans lesquels je suis le plus impliqué. Ce sont des articles qui sont des « déclencheurs » vers une suite de travaux intéressants :

  • La notion de compilette : Karine Brifault and Henri-Pierre Charles : “Efficient Data Driven Run-time Code Generation.” In Proceedings of the 7th Workshop on Workshop on Languages, Compilers, and Run-time Support for Scalable Systems, LCR ’04, pages 1–7, New York, NY, USA, 2004. ACM.

Cette “invention” qui permet de rendre la génération de code binaire « data-dependant », à laquelle j’ai beaucoup collaboré, a dirigé mon activité de recherche, et permet encore de nombreux développement à la fois académique.  Téléchargement : 2004-LCR-Notion-Compilette

  • Modèle de programmation pour machine hétérogène Mickaël Dardaillon, Kevin Marquet, Tanguy Risset, Jérôme Martin, Henri-Pierre Charles : A New Compilation Flow for Software-Defined Radio Applications on Heterogeneous MPSoCs. TACO 13(2) : 19 :1-19 :25 (2016)

Cet article décrit un modèle de programmation à base d’acteur pour une plate-forme matérielle pour la radio logicielle. J’ai moins participé à cette publication, Mickaël et Kevin en sont les principaux auteurs, je la trouve néanmoins très inspirante pour la programmation de machines hétérogènes.

Téléchargement  https://hal.inria.fr/hal-01396143/document

  • Computing in memory M Kooli, HP Charles, C Touzet, B Giraud, JP Noel : “Software Platform Dedicated for In-Memory Computing Circuit Evaluation” RSP’17 (Rapid System Prototyping) 2017

Cet article décrit les premiers travaux de simulation de haut niveau qui ont permis de montrer que certains algorithmes pouvaient bénéficier du computing in memory et estimer les gains en vitesse et en énergie. Je suis sûr que de nombreux articles et brevets vont continuer ce projet de « computing in memory »

Téléchargement https://hal-cea.archives-ouvertes.fr/cea-01625320/document

Publicités

Software Platform Dedicated for In-Memory Computing Circuit Evaluation

The preprint version of our paper on « in memory computing » simulation & design, presented during RSP 2017 (located during ESWEEK), is available here : #computing #in-memory #esweek #RSP

https://hal-cea.archives-ouvertes.fr/cea-01625320

Abstract : This paper presents a new software platform, co-developed by research teams with expertises in memory design, and software engineering and compilation aspects, to dimension and evaluate a novel In-Memory Power Aware CompuTing (IMPACT) system for IoT. IMPACT circuit is an emerging memory that promises to save execution time and power consumption by embedding computing abilities. The proposed platform permits to manually convert a software application from conventional to IMPACT implementation using vector representation. The two implementations are then compiled on the Low Level Virtual Machine (LLVM) and traced in order to evaluate their performance in terms of timing and energy consumption. The results of emulating image-processing and secure applications on IMPACT system show a significant gain in the execution time and the energy consumption compared to a conventional system with an ARM Cortex®-M7 processor. The execution time can be reduced from 50x to 6145x, depending on the application and the workload size. Furthermore, the gain of the energy consumption is about 12.6x.

« What every computer scientists should know about computer architects »

I’ve done an invited talk in LIP laboratory (Ens-Lyon). I’ve talk about the difficulty to make inter-disciplinary research & the first results about the IMPACT CEA internal project. We try to design a « computing in memory » chip and find a suitable programming model. The slides can be found here: 2017-12-What-Everyprogrammer-should-know 

Big Data : promesses tenues ?

J’ai eu l’honneur d’être invité pour un séminaire (d’une série de 3 sur les big data) dans le cadre des « lundis du sacré coeur ».  https://www.diocese-grenoble-vienne.fr/sacrecoeur1.html

C’était une opportunité pour essayer de faire le lien entre des éléments technologiques et leur impact sur la société.

Mon exposé a fait une première approche technologique, les deux suivants seront plus orientés vers la théologie :

  • 11 décembre:  Les “moyens de communication sociale“ nous ont-ils éloignés les uns des autres ? Philippe Gagnon, théologien au CTM « L’initiative d’une réflexion sur ces derniers revient à l’Église catholique. Peut-on continuer à déclarer leurs effets positifs à l’heure où nous voyons une perte des références à la culture classique, et même à la capacité de lire et comprendre les textes, dont parfois l’accès à la foi dépend ? »
  • 18 décembre : Les défis éthiques du Big Data Jacqueline Le Diguer’her, théologienne au CTM  « Nous nous pencherons sur les enjeux éthiques face à la conception et à la manipulation de ces “données massives“ : par exemple, vie privée, perte ou vol d’identité, statut de l’“être génétique“ face à la possibilité de son traçage. »

Fiche « Compilateur »

Christian Fabre et moi même avons été sollicités pour la rédaction de la fiche « Compilateur » pour les éditions « techniques de l’ingénieur ». L’objet de l’article est d’expliquer ce qu’est un compilateur, de montrer les technologies qu’il utilise et ce qu’on peut en faire. Nous avons essayé de prendre une approche plus large que la description qu’on peut trouver habituellement (par exemple dans cette page wikipedia)

L’article est disponible via ce lien

Tous les commentaires sont les bienvenus !

Résumé : Un compilateur est un logiciel permettant de transformer un programme source (écrit dans un langage de programmation) dans un autre langage de programmation cible, le plus souvent dans le langage d’un processeur permettant d’exécuter le dit programme. Nous verrons dans cet article les grands principes d’un compilateur, les technologies utilisées ainsi que d’autres usages de la compilation.

Recherche étudiant pour thèse ! Urgent !

Je recherche un candidat pour une thèse qui commencera le plus tôt possible. Le résumé du sujet est le suivant :

Les librairies de calcul scientifique sont intensivement utilisées pour le calcul scientifiques haute performance. Beaucoup de noyaux de calculs sont clairement identifiés (algèbre linéaire, transformée de Fourier, convolutions, etc). Linpack, FFTW, Spiral, MAGMA font partie des librairies connues dans ce domaine.

La performance de ces librairies dépend des données qu’elle manipule, et l’impact des données manipulées est plus grand que l’efficacité des optimisations statique de code, dont l’optimisation n’est valable que pour un seul type de données.

Le sujet de cette thèse sera de trouver une façon d’exprimer un algorithme de calcul, et un moyen de générer le code dynamiquement en fonction des données qu’il manipule afin de générer un code qui utilisera toutes les ressources d’un processeur dans le plus grand nombre de cas possible.

Les architectures visées seront des architectures avec plusieurs niveau de parallélisme : ILP, pipeline long, multithread, multi-coeur.

Cette thèse aura lieu à Grenoble, au CEA, l’endroit idéal pour les activités calcul haute performance et compilation. Avoir une expérience dans le domaine du calcul intensif serait un plus.

Le candidat devra avoir un niveau master ou école d’ingénieur en informatique, connaître l’architecture des ordinateurs et la compilation.

Me contacter par mail pour candidater : mailto:Henri-Pierre.Charles@cea.fr

 

Optimisation de code grâce à la restructuration des données

J’ai eu le plaisir de participer au jury de thèse de Christopher Haine à Bordeaux.

Résumé de la thèse : Bien penser la structuration de données est primordial pour obtenir de hautes performances, alors que les processeurs actuels perdent un temps considérable à attendre la complétion de trans actions mémoires. En particulier les localités spatiales et
temporelles de données doivent être optimisées. Cependant, les transformations de structures de données ne sont pas proprement explorées par les compilateurs, en raison de la difficulté que pose l’évaluation de performance des transformations potentielles. De plus, l’optimisation des structures de données est chronophage, sujette à erreur et les transformations à considérer sont trop nombreuses pour être implémentées à la main dans l’optique de trouver une version de code efficace.

On propose de guider les programmeurs à travers le processus de restructuration de données grâce à un retour utilisateur approfondi, tout d’abord en donnant une description multidimensionnelle de la structure de donnée initiale, faite par une
analyse de traces mémoire issues du binaire de l’application de l’utilisateur, dans le but de localiser des problèmes de stride au niveau instruction, indépendamment du langage d’entrée. On choisit de focaliser notre étude sur les transformations de structure de données, traduisibles dans un formalisme proche du C pour favoriser la compréhension de l’utilisateur, que l’on applique et évalue sur deux cas d’étude qui sont des applications
réelles, à savoir une simulation d’ondes cardiaques et une simulation de chromo- dynamique quantique sur réseau, avec différents jeux d’entrées. La prédiction de performance de
différentes transformations est conforme à 5% près aux versions réécrites à la main.

Mots clés: Profilage de performance, Restructuration de données,
Vectorisation, Réécriture de binaire

La thèse à été présentée devant le jury suivant:

Henri-Pierre CHARLES Directeur de Rercherche CEA-LIST Grenoble Rapporteur
Allen MALONY Professeur, Universite de l’Oregon  Rapporteur
Emmanuel JEANNOT Directeur de Recherche, Inria Examinateur
Pascale ROSSE-LAURENT Ingénieur Atos Examinateur
Olivier AUMAGE Chargé de Recherche, Inria  Encadrant
Denis BARTHOU Directeur de Recherche, Inria Directeur de Thèse

Compte rendu des rencontres francophones de la compilation

Merci à tous les participants qui ont résisté à la chaleur et ont assisté aux exposés de ces rencontres sur la compilation. Quelques ajustement ont été fait à l’ordre du jour.

La copie des présentation des exposés seront bientôt disponibles sur le site des rencontres : http://compilfr.ens-lyon.fr/douzieme-rencontre-compilation/

IMG_20170622

Publication du programme des rencontres francophones de la compilation

Le programme des rencontres francophones de la compilation est finalisé. Inscription sur le site suivant : Inscription : http://gipco-adns.com/site/5956/inscription+aux+journees+compilation

Toutes les informations sur le site du workshop http://compilfr.ens-lyon.fr/douzieme-rencontre-compilation/

Mercredi 21 Juin:

  • Session 1: 14h-16h: Architectures en rupture
    • Denis Dutoit & Eric Gutmuller (CEA – 1h): 3D Stacking et Caches in NOC
    • David Furoret (Upmem – 1h): Architecture PIM et problématiques
  • Pause
  • Session 2: 16h45 – 18h15: Architectures en rupture (suite)
    • Benoit dupont-de-Dinechin (Kalray – 1h): Titre à définir
    • Rabah Bouziane (PhD – 30 min): Silent stores optimization to reduce write activities to non-volatile memory
  • Diner: 19h

Jeudi 22 Juin :

  • Session 3: 8h30-10h: Instrumentation
    • Antoine Moynault & Pierrick Bouvier (Tutorial – 1h30): QEMU plugin
  • Session 4: 10h40-12h: Obfuscation/debugging
    • Serge Guelton (QuarksLab – 40 min): Obfuscations avancées
    • Emmanuelle Saillard (Post-doc – 40 min): Titre à préciser
  • Déjeuner
  • Session 5: 13h30-15h20: GPU
    • Florian Gouin (PhD – 40 min): Méthodologie de placement d’algorithmes de traitement d’images sur architectures massivement parallèles de type GPU
    • Victor Lomuller (CodePlay – 1h): C++ sur accélérateurs: Utilisation de Clang pour le support de SYCL
  • Social event (bus à 15h30)
  • Diner: 19h30

Vendredi 23 Juin:

  • Session 6: 8h30-10h: Compilation polyédrique
    • Christophe Alias & Alexandru Plesco (Conf – 30 min): Compacting Affine Control with Semantic Factorizations (HLS, polyhedral model, FPGA)
    • Manuel Selva & Julien Pages (Post-doc – 1h): Optimisation polyédrique à l’exécution dans le contexte de langages dynamiques
  • Session 7: 10h40-12h30: Etudiants en recherche d’emploi
    • Yon Fernandez de Retana (PhD – 40 min): Sea-of-Nodes : Sémantique et preuve d’optimisations
    • Vaddina Kameswar Rao (PhD – 30): Energy profiling of embedded systems – experiences learnt so far
    • Nasrine Damouche (Post-doc — 40 min): Titre à définir