Optimized Code Generation for Parallel and Polyhedral Loop Nests using MLIR
Génération de code optimisée pour des nids de boucles parallèles et polyédriques à l'aide de MLIR
Résumé
In this thesis we show the benefits of the novel MLIR compiler technology to the generation of code from a DSL, namely EasyML used in openCARP, a widely used simulator in the cardiac electrophysiology community. Building on an existing work we deeply modified openCARP's native code generator to enable efficient vectorized CPU and GPU code generation (Nvidia CUDA and AMD ROCm). Generating optimized code for different accelerators requires specific optimizations and we review how MLIR has been used to enable multi-target code generation from an integrated generator. To our knowledge, this is the first work that deeply connects an optimizing compiler infrastructure to electrophysiology models of the human body, showing the potential benefits of using compiler technology in the simulation of human cell interactions. Additionally, we did a study on the polyhedral compilers and generalized our techniques using Polygeist to improve the vectorization and heterogeneous code generation of polyhedral compilers.
Dans cette thèse, nous montrons les avantages de la nouvelle technologie de compilateur MLIR pour la génération de code à partir d'un DSL, à savoir EasyML utilisé dans openCARP, un simulateur largement utilisé dans la recherche en électrophysiologie cardiaque. S'appuyant sur un travail existant nous avons profondément modifié le générateur de code natif d'openCARP pour permettre une génération efficace de code CPU vectoriel et GPU (Nvidia CUDA et AMD ROCm). La génération de code optimisé pour différents accélérateurs nécessite des optimisations spécifiques et nous examinons comment MLIR a été utilisé pour permettre la génération de code multi-cible à partir d'un générateur intégré. À notre connaissance, il s'agit du premier travail qui relie profondément une infrastructure de compilateur d'optimisation aux modèles électrophysiologiques du corps humain, montrant les avantages potentiels de l'utilisation de technologies de compilation dans la simulation des interactions entre cellules humaines. De plus, nous avons réalisé une étude sur les compilateurs polyédriques et généralisé nos techniques en utilisant Polygeist pour améliorer la vectorisation et la génération de codes hétérogènes des compilateurs polyédriques.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|