Music synthesis description with the data flow language Lustre

Un petit clin d’oeil à la journée pour Nicolas Halbwaks #NH2018 @MonniauxD @l_gonnord, un vieil article sur un domaine dans lequel Lustre n’a pas encore donné toute sa mesure, la représentation de la musique.

PJ un article de 1989 co écrit avec Paul Amblard paru à la 15 eme conférence Euromicro

Publicités

Cherche candidat en thèse : unification des mémoires distribuées pour systèmes hétérogènes

Nous recherchons un candidat pour une thèse dont le résumé du sujet suit. La thèse se déroulera à Saclay, et nous recherchons un étudiant de niveau master 2 ou école d’ingénieur en informatique. De bonnes connaissances en architecture des processeurs sont nécessaires.

Contacts : Loic.Cudennec :loic.cudennec@cea.fr  ou moi-même.

Lien vers une description du sujet

Résumé du sujet :

Les ordinateurs du futur, embarqués dans une voiture ou dans des super calculateurs, auront une hiérarchie mémoire très complexe. Il s’agit de relier des dizaines (centaines) de cœurs de calcul à des tera-octets de mémoire. Les cœurs de calculs peuvent être hétérogènes (CPU, GPU, DSP, FPGA), la mémoire également (DRAM, NVRAM, FLASH).

Beaucoup d’architectures existent (mémoire distribuées, mémoires partagées, NUMA), plusieurs possibilités existent pour leur exploitation matérielle (cohérence de cache, protocoles de communication) ou logicielles (parallélisme de thread, OpenMP, transactions), plusieurs options existent pour la communication entre cœur et mémoire (MPI, RDMA, RoCE, CCIX, GenZ). Aucune approche ne donne ni de modèle de programmation clair, ni de modèle de mémoire simple dans le cadre d’applications parallèles.

L’objectif de cette thèse de doctorat est d’étudier la possibilité d’exploiter les technologies émergentes autour des ressources d’accélération de calcul, des mémoires hybrides (persistantes ou non) et des standards de communication distants (par exemple le RDMA) afin de rendre plus performant le partage de données sur les plateformes hétérogènes et de fournir un modèle simple pour le programmeur.

Smart Instruction Codes for In-Memory Computing Architectures Compatible with Standard SRAM Interfaces

This paper presents the computing model for In-Memory Computing architecture based on SRAM memory that embeds computing abilities. This memory concept offers significant performance gains in terms of energy consumption and execution time. To handle the interaction between the memory and the CPU, new memory instruction codes were designed. These instructions are communicated by the CPU to the memory, using standard SRAM buses. This implementation allows (1) to embed In-Memory Computing capabilities on a system without Instruction Set Architecture (ISA) modification, and (2) to finely interlace CPU instructions and in-memory computing instructions.

Authors : Maha Kooli , Henri-Pierre Charles , Clement Touzet , Bastien Giraud, Jean-Philippe Noel

It was presented during the DATE 2018 (Design, Automation & Test in Europe) conference in Dresdes . https://www.date-conference.com/proceedings-archive/2018/ 2018

The preprint documents will appear soon on HAL :

This article has generated interesting discussions :

2018-03-23-DATE-Bastien-HPC

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

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