Intégration d'un accélérateur pluri-coeurs dans un processeur à hautes performances / Arthur Vianes ; sous la direction de Frédéric Rousseau et de Frédéric Petrot et de Benoît Dupont de Dinechin

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : français / French

Calcul intensif (informatique)

Transistors MOSFET

Microprocesseurs multi-coeurs

Processeurs graphiques

Classification Dewey : 620

Rousseau, Frédéric (19..-.... ; auteur en informatique) (Directeur de thèse / thesis advisor)

Pétrot, Frédéric (19..-....) (Directeur de thèse / thesis advisor)

Dupont de Dinechin, Benoît (ingénieur de recherche) (Directeur de thèse / thesis advisor)

Risset, Tanguy (1966-....) (Président du jury de soutenance / praeses)

Nezan, Jean-François (Rapporteur de la thèse / thesis reporter)

Martin, Kévin (1981-.... ; auteur en Génie électrique) (Rapporteur de la thèse / thesis reporter)

Donsez, Didier (19..-....) (Membre du jury / opponent)

Université Grenoble Alpes (2020-....) (Organisme de soutenance / degree-grantor)

École doctorale électronique, électrotechnique, automatique, traitement du signal (Grenoble ; 199.-....) (Ecole doctorale associée à la thèse / doctoral school)

Equipe de recherche System level synthesis (Grenoble, Isère, France ; 2020-....) (Equipe de recherche associée à la thèse / thesis associated research team)

Techniques de l’informatique et de la microélectronique pour l’architecture des systèmes intégrés (Grenoble, Isère, France ; 1994-....) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : Les systèmes de calcul modernes sont soumis à de fortes contraintes durant leur utilisation (notamment pour la dissipation d'énergie - quantité de chaleur produite par le circuit à extraire), et durant leur conception puis fabrication, avec des contraintes imposées par les techniques de gravure utilisées, qui sont principalement des contraintes économiques. L'ensemble de ces contraintes déterminent l'efficacité d'un circuit (en terme de puissance de calcul, d'efficacité énergétique, et de coût) et il est nécessaire de les prendre en compte pour concevoir un circuit efficace.Pour atteindre la haute performance avec des taches de calcul spécialisé, il est nécessaire de se détacher du modèle de calcul généraliste et de concevoir et utiliser des accélérateurs spécialisés pour ces taches. Cette approche est déjà utilisée par exemple pour les taches graphiques, qui sont déportées vers un processeur graphique (GPU).Plusieurs facteurs rendent incompatibles les modèles de programmation des processeurs généralistes et les modèles de programmation des accélérateurs. Mais l'incompatibilité majeure réside dans leurs modèles mémoire.Les modèles mémoire des processeurs généralistes exposent une mémoire globalement uniforme et fournissent des garanties fortes de synchronisation de la mémoire quand plusieurs programmes manipulent la même donnée stockée en mémoire. Cette dernière propriété est appelée "cohérence de cache".Ces propriétés simplifient la programmabilité en proposant un comportement de la mémoire plus intuitif pour le programmeur, ce qui réduit la quantité de code nécessaire pour manipuler des données correctement synchronisées.Dans le cas du modèle mémoire des accélérateurs, la mémoire n'est pas uniforme, plusieurs types de mémoire sont proposées - souvent une mémoire globale et une mémoire locale.Les architectures d’accélérateurs composées d'un grand nombre de processeurs, appelées architectures "pluri-coeurs", imposent des contraintes fortes sur le système mémoire, et la cohérence de cache est trop difficile à offrir. Les conséquences de ce relâchement du modèle mémoire sont que le modèle mémoire est moins intuitif pour les programmeurs, et que lorsque des données sont partagées entre plusieurs processus, il est nécessaire d'ajouter explicitement du code de synchronisation supplémentaire.Dans ce travail, nous présentons les contraintes que représente l'intégration d'un accélérateur de type pluri-coeurs avec un processeur généraliste haute performance.Nous étudions comment réduire les problèmes de contention mémoire dans le système mémoire local de ce type d'accélérateur. Enfin, nous proposons une solution permettant de réduire la distance entre le modèle de programmation généraliste, et le modèle de programmation des accélérateurs en proposant sur un protocole de cohérence de cache logiciel.

Résumé / Abstract : Modern computing systems are subject to strong constraints during their use (in particular for energy dissipation - the amount of heat produced by the circuit to be extracted), and during their design and manufacture, with constraints imposed by the lithography techniques used, which are mainly economic constraints. All these constraints determine the efficiency of a circuit (in terms of computing power, energy efficiency and cost) and it is necessary to take them into account to design an efficient circuit. To achieve high performance in specialized computing tasks, we need to move away from the general-purpose computing model and to design and use specialized accelerators for these tasks.This approach is already used, for example, for graphics tasks, which are offloaded to a graphics processing unit (GPU).A number of factors make the programming models of general-purpose processors and the accelerator programming models incompatible. But the main incompatibility lies in their memory models.The memory models of general-purpose processors expose a globally uniform memory and provide strong guarantees of memory synchronization when multiple programs manipulate the same data stored in memory. This latter property is called "cache coherency".These properties simplify programmability by making memory behavior more intuitive for the programmer, and reduce the amount of code required to manipulate correctly synchronized data.While in the memory model of accelerators, the memory is not uniform, several types of memory are exposed - typically global memory and local memory.Accelerator architectures based on a large number of cores, known as "many-core" architectures, put significant constraints on the memory system, preventing the implementation of cache coherency. The consequences of weakening the memory model are that the memory model is less intuitive for programmers, and when data is shared between multiple programs extra synchronization code is now required.In this work, we discuss the constraints involved in integrating a many-core accelerator with a high-performance general-purpose processor. We investigate how to reduce memory contention in the local memory system of this type of accelerator. And finally, we suggest a solution to reduce the gap between the general-purpose programming model and the accelerator programming model by introducing a software cache coherence protocol.