Post-doc position available

Topic: Micro-programming optimization of “in-memory computing” circuits

Download full proposal

The concept of “in-memory computing”, which consists in bringing computation tasks inside the memory macro, is a novel and promising approach where we need to explore new computing algorithms and methodologies. This approach differs in particular from those known as « processing-in-memory » (PIM) that aim at moving computation elements near the memories (especially DRAM) without changing their internal architecture. Our approach called DRC² (Dynamically Reconfigurable Computing Circuit) consists in adapting conventional memory peripheral circuits (I/O, address decoder, …) to perform logic (AND, OR, XOR, …) and arithmetic (addition/subtraction, …) operations inside the memory macro (SRAM or NVM).  

We are looking to recruit a highly motivated post-doctoral researcher to develop an optimized micro programming environment for an “in-memory computing” circuit based on DRC² concept. He/she will interact with both circuit design and software teams to propose an efficient architecture and software tools. More precisely, he/she will:

  • Perform a bibliography on potential applications and dedicated programming languages.

  • Select key applications and propose an architecture based on DRC² to take advantage of the DRC² capabilities.

  • Develop system-level testbenches to evaluate speed and power enhancements compared to existing solutions.

  • Interact with circuit design team in order to finely understand the DRC² concept.

  • Help to develop a testchip based on DRC² concept driven by a specific set of instructions. The final output will be the electrical validation of a testchip.

Such a co-optimization, i.e. a continuous feedback between design and software teams, is crucial and required for project success.

Required skills:

  • Compilers: memory models, tools for parallelism extraction, low-level parallelism, low level code generation, …

  • Knowledge on algorithm

  • Computing architecture: instruction set architecture, memory hierarchy, vector architecture, …

  • Collaboration between design team and compiler team

Appreciated skills:

  • Knowledge in circuit design (digital and/or full custom)

  • Writing skills for academic publications

Supervisors :

  • GIRAUD Bastien (memory design) Phone: +33 (0)4 38 78 17 58, E-mail: bastien.giraud@cea.fr
  • FOURNIER Jacques (security)
  • CHARLES Henri-Pierre (vision)

 

DCAHPO: a new international workshop

I’m happy to launch a new workshop DCAHPO (Int. Workshop on Dynamic Compilation for Architectural Heterogeneity and Program Optimization). Held in conjunction with the International Symposium on Code Generation and Optimization (CGO) 2017 in Austin TX.

It’s a merge of 2 previous workshop on dynamic compilation. DCE was on software aspects and ASMAS-DO on hardware support.

More informations on the new web site : https://dcahpo.wordpress.com/

 

Recherche candidat thèse : Construction de librairie auto-optimisantes pour le Calcul Haute Performance

Je recherche un candidat pour une thèse qui commencera en Septembre 2017. Le 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.

Elle peut commencer par un stage de master ou d’ingénieur début 2017.

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

 

Soutenance de thèse de HALLI Nassim – Mardi 25 Octobre 14h – campus Minatec

Nassim Halli soutiendra sa thèse  intitulée « Optimisation de code pour application Java haute-performance« .

Mardi 25 Octobre à 14h sur le campus Minatec (17 rue des Martyrs 38054 Grenoble) – Bâtiment 50C – salle 203/206 au 1ère étage (l’accès se fait par la zone ouverte et ne nécessite pas de badge d’entrée).

Elle sera présentée en français devant le jury composé de :

  • M. William JALBY : Professeur à l’Université de Versailles St-Quentin-en-Yvelines, Président,
  • M. Gaël THOMAS : Professeur à Télécom SudParis, Rapporteur;
  • M. Denis BARTHOU : Professeur à l’Université de Bordeaux, Rapporteur;
  • M. Sébastien BAYLE : Responsable de l’équipe de développement à Aselta Nanographics, Examinateur;
  • M. Jean-François MÉHAUT : Professeur a l’Université Grenoble Alpes, Directeur de thèse;
  • M. Henri-Pierre CHARLES : Directeur de recherche au CEA LIST, Co-Directeur de thèse.

Résumé en français :

Java est à ce jour l’un des langages, si ce n’est le langage, le plus utilisé toutes catégories de programmation confondues et sa popularité concernant le développement d’applications scientifiques n’est plus à démontrer. Néanmoins son utilisation dans le domaine du Calcul Haute Performance (HPC) reste marginale même si elle s’inscrit au cœur de la stratégie de certaine entreprise comme Aselta Nanographics, éditeur de l’application Inscale pour la modélisation des processus de lithographie par faisceaux d’électron, instigateur et partenaire industriel de cette thèse.
Et pour cause, sa définition haut-niveau et machine-indépendante, reposant sur un environnement d’exécution, parait peu compatible avec le besoin de contrôle bas-niveau nécessaire pour exploiter de manière optimale des architectures de microprocesseurs de plus en plus complexes comme les architectures Intel64 (implémentation Intel de l’architecture x86-64). Cette responsabilité est entièrement déléguée à l’environnement d’exécution, notamment par le biais de la compilation dynamique, chargée de générer du code binaire applicatif à la volée. C’est le cas de la JVM HotSpot, au centre de cette étude, qui s’est imposée comme l’environnement de référence pour l’exécution d’applications Java en production. Cette thèse propose, dans ce contexte, de répondre à la problématique suivante : comment optimiser les performances de code séquentiel Java plus particulièrement dans un environnement HotSpot/Intel64 ? Pour tenter d’y répondre, trois axes principaux ont été explorés. Le premier axe est l’analyse des performances du polymorphisme, mécanisme Java haut-niveau omniprésent dans les applications, dans le lequel on tente de mesurer l’impact du polymorphisme sur les performances du code et d’évaluer des alternatives possibles. Le second axe est l’intégration de code natif au sein des applications – afin de bénéficier d’optimisations natives – avec prise en compte du compromis coût d’intégration/qualité du code. Enfin le troisième axe est l’extension du compilateur dynamique pour des méthodes applicatives afin, là encore, de bénéficier d’optimisations natives tout en s’affranchissant du surcout inhérent à l’intégration de code natif.

Ces trois axes couvrent différentes pistes exploitables dans un contexte de production qui doit intégrer certaines contraintes comme le temps de développement ou encore la maintenance du code. Ces pistes ont permis d’obtenir des gains de performances significatifs sur des sections de code applicatif qui demeuraient jusqu’alors très critiques.

 

DRC 2 : Dynamically Reconfigurable Computing Circuit based on Memory Architecture

New publication in the conference « IEEE International Conference on Rebooting Computing » http://icrc.ieee.org/ in San Diego, Californie.

Lien HAL : https://hal-cea.archives-ouvertes.fr/cea-01376554

Abstract—This paper presents a novel energy-efficient and Dynamically Reconfigurable Computing Circuit (DRC2) concept based on memory architecture for data-intensive (imaging, …) and secure (cryptography, …) applications. The proposed computing circuit is based on a 10-Transistor (10T) 3-Port SRAM bitcell array driven by a peripheral circuitry enabling all basic operations that can be traditionally performed by an ALU. As a result, logic and arithmetic operations can be entirely executed within the memory unit leading to a significant reduction in power consumption related to the data transfer between memories and computing units. Moreover, the proposed computing circuit can perform extremely-parallel operations enabling the processing of
large volums of data. A test case based on image processing application and using the saturating increment function is analytically modeled to compare conventional and DRC2-based approaches. It is demonstrated that DRC2-based approach provides a reduction of clock cycle number of up to 2x. Finally, potential applications and must-be-considered changes at different design levels are discussed.

Juan Manuel MARTINEZ PHD defense

I was happy to be part of the PhD defense of Juan Manuel MARTINEZ CAAMANO. His PhD title is « Fast and Flexible Compilation Techniques for Eective Speculative Polyhedral Parallelization »

The abstract : In this thesis, we present our contributions to APOLLO: an automatic parallelization compiler that combines polyhedral optimization with Thread-Level-Speculation, to optimize dynamic codes on-the-fly. Thanks to an online proling phase and a speculation model about the target’s code behavior, Apollo is able to select an optimization and to generate code based on it. During optimized code execution,  Apollo constantly verifies  the validity of the speculation model. The main contribution of this thesis is a code generation mechanism that is able to instantiate any polyhedral transformation, at runtime, without incurring a major time-overhead. This mechanism is currently in use inside Apollo. We called it Code-Bones. It provides signicant performance benefits when compared to other approaches.

Thèse dirigée par :

  • M. Philippe CLAUSS Professeur à l’Université de Strasbourg,
    Strasbourg

Rapporteurs :

  • M. Henri Pierre CHARLES Directeur de Recherche, CEA Grenoble
  • M. Fabrice RASTELLO Chargé de Recherche INRIA Grenoble

Examinateurs :

  • M. Philippe HELLUY Professeur Université de Strasbourg
  • M. Erwen Rohou Directeur de recherche, INRIA, Rennes

11th rencontre de la communauté française de compilation

2016-09-rencontres-compilation-aussoisDuring the 11th meeting of the french speaking workshop on compilation I’ve done a talk (with more question than answers) on « Compilation au vol pour système embarqués contraints » (on the fly compilation for embedded systems)

This meeting was in Aussois, and this year has a focus on security.

The slides used during this presentation

ComNet-IoT 2016 international workshop

Our work about run-time optimization for Wireless Sensor Network has been presented and published in the 5th International Workshop on Computing and Networking for Internet of Things.

Safae DAHMANI PhD defense

I was happy to be part of the PhD defense of Safae DAHMANI. Her PhD title is :

2015-12-14-Safae-4

During the introduction to the defense

« Modèles et protocoles de cohérence de données, décision et optimisation à la compilation pour des architectures massivement parallèles. »

devant le jury composé de :

  • Henri-Pierre Charles Directeur de recherche au CEA Grenoble) / Président
  • Raymond Namyst Professeur à l’Université de Bordeaux / Rapporteur
  • Gilles Sassatelli Directeur de recherche CNRS, Montpellier / Rapporteur
  • Gabriel Antoniu Directeur de recherche à l’INRIA, Rennes /
    2015-12-14-Safae-30

    Safae Dahmani during the defense

    Examinateur

  • Guy Gogniat Professeur à l’Université de Bretagne Sud /
    Directeur de thèse
  • Loïc Cudennec
    Ingénieur chercheur au CEA Saclay / Encadrant de thèse

The PhD abstract is :

Manycœurs architectures consist of hundreds to thousands of embedded cores, distributed memories and a dedicated network on a single chip. In this context, and because of the scale of the processor, providing a shared memory system has to rely on efficient hardware and software mechanisms and data consistency protocols. Numerous works explored consistency mechanisms designed for highly parallel architectures. They lead to the conclusion that there won’t exist one protocol that fits to all applications and hardware contexts. In order to deal with consistency issues for this kind of architectures, we propose in this work a multi-protocol compilation toolchain, in which shared data of the application can

2015-12-14-Safae-120

4 PhD generation together ! Raymond Namyst, Gabriel Antoniu, Loic Cudennec and Safae Dahmani

be managed by different protocols. Protocols are chosen and configured at compile time, following the application behavior and the targeted architecture specifications. The application behavior is characterized with a static analysis process that helps to guide the protocols assignment to each data access. The platform offers a protocol library where each protocol is characterized by one or more parameters. The range of possible values of each parameter depends on some constraints mainly related to the targeted platform. The protocols configuration relies on a genetic-based engine that allows to instantiate each protocol with appropriate parameters values according to multiple performance objectives. In order to evaluate the quality of each proposed solution, we use different evaluation models. We first use a traffic analytical model which gives some NoC communication statistics but no timing information. Therefore, we propose two cycle-based evaluation models that provide more accurate performance metrics while taking into account contention effect due to the consistency protocols communications. We also propose a cooperative cache consistency protocol improving the cache miss rate by sliding data to less stressed neighbors. An extension of this protocol is proposed in order to dynamically define the sliding radius assigned to each data migration. This extension is based on the mass-spring physical model. Experimental validation of different contributions uses the sliding based protocols versus a four-state directory-based protocol.