Low-level programming model for In-Memory Computing architecture
Modèle de programmation bas niveau pour architecture de calcul proche mémoire
Résumé
Since the 60's the architectural model used by processors is the 'Von Neumann' model in which a processor fetches instructions and data to process in the same memory. The increase of the transistor density on a chip has allowed to increase its operating frequency but has produced a 'bottleneck' towards the memory which cannot provide instructions and data at the same frequency: the memory wall.Many architectural solutions have been proposed to solve this bottleneck. One of the solutions we are studying is an architecture in which computations are performed in memory, without moving data to the processor. Evaluation of this solution has shown impressive potential gains in speed and energy.To exploit this potential, a change in programming model is required, as instructions will no longer be read from memory but generated by a processor that will drive one or more memory planes.The contributions of the thesis are the specification of a transfer mechanism for complex memory access patterns to near-memory computing architectures.The thesis also presents a high-level programming model allowing the programming of a near-memory computing architecture, as well as the above-mentioned transfer mechanism.This programming model can be parameterized to compile specialized applications through static compilation, or dynamic code generation to perform run-time optimizations.The evaluation of these contributions through a simulation model shows results that demonstrate the interest of dynamic code specialization for heterogeneous architectures.
Depuis les années 60 le modèle architectural utilisé par les processeurs est le modèle ’von Neumann’ dans lequel un processeur va chercher instructions et données à traiter dans la même mémoire. L’augmentation de la densité de transistor sur une puce a permis d’augmenter sa fréquence de fonctionnement, mais a produit un ’goulot d’étranglement’ vers la mémoire qui ne peut pas fournir instructions et données à la même fréquence : le mur de la mémoire. Beaucoup de solutions architecturales ont été proposées pour résoudre ce goulot d’étranglement. Une des solutions que nous étudions est une architecture dans laquelle les calculs sont réalisés dans la mémoire, sans déplacer les données vers le processeur. L’évaluation de cette solution a montré des gains potentiels impressionnants en vitesse et en énergie. Pour exploiter ce potentiel, il faut changer de modèle de programmation, car les instructions ne seront plus lues en mémoire, mais générées par un processeur qui pilotera un ou plusieurs plans mémoire. Les contributions de la thèse sont la spécification d’un mécanisme de transfert pour les motifs d’accès mémoire complexes à destination des architectures de calcul proche-mémoire. La thèse présente également un modèle de programmation haut-niveau permettant la programmation d’une architecture de calcul proche-mémoire, ainsi que du mécanisme de transfert susmentionné. Ce modèle de programmation peut être paramétré pour compiler des applications spécialisées grâce à la compilation statique, ou la génération dynamique de code pour effectuer des optimisations lors du run-time. L’évaluation de ces contributions par le biais d’un modèle de simulation montre des résultats qui témoignent de l’intérêt de la spécialisation dynamique de code pour les architectures de calcul proche-mémoire, et par extension des nœuds de calcul hétérogènes.
Origine | Version validée par le jury (STAR) |
---|