Extending Polyhedral Techniques towards Parallel Specifications and Approximations

Les techniques polyédriques permettent d’appliquer des analyses et transformations de code sur des structures multidimensionnelles telles que boucles imbriquées et tableaux. Elles sont en général restreintes aux programmes séquentiels dont le contrôle est affine et statique. Cette thèse consiste à l...

Full description

Bibliographic Details
Main Author: Isoard, Alexandre
Other Authors: Lyon
Language:en
Published: 2016
Subjects:
Online Access:http://www.theses.fr/2016LYSEN011/document
id ndltd-theses.fr-2016LYSEN011
record_format oai_dc
spelling ndltd-theses.fr-2016LYSEN0112019-06-12T03:23:17Z Extending Polyhedral Techniques towards Parallel Specifications and Approximations Extension des Techniques Polyedriques vers les Specifications Parallelles et les Approximations Modèle polyédrique Déchargement de noyau de calcul Tuilage paramétrique Allocation mémoire Polyhedral Model Kernel Offloading Parametric Tiling Memory Allocation Les techniques polyédriques permettent d’appliquer des analyses et transformations de code sur des structures multidimensionnelles telles que boucles imbriquées et tableaux. Elles sont en général restreintes aux programmes séquentiels dont le contrôle est affine et statique. Cette thèse consiste à les étendre à des programmes comportant par exemple des tests non analysables ou exprimant du parallélisme. Le premier résultat est l'extension de l’analyse de durée de vie et conflits mémoire, pour les scalaires et les tableaux, à des programmes à spécification parallèle ou approximée. Dans les travaux précédents sur l’allocation mémoire pour laquelle cette analyse est nécessaire, la notion de temps ordonne totalement les instructions entre elles et l’existence de cet ordre est implicite et nécessaire. Nous avons montré qu'il est possible de mener à bien de telles analyses sur un ordre partiel quelconque qui correspondra au parallélisme du programme étudié. Le deuxième résultat est d'étendre les techniques de repliement mémoire, basées sur les réseaux euclidiens, de manière à trouver automatiquement une base adéquate à partir de l'ensemble des conflits mémoire. Cet ensemble est fréquemment non convexe, cas qui était traité de façon insuffisante par les méthodes précédentes. Le dernier résultat applique les deux analyses précédentes au calcul par blocs "pipelinés" et notamment au cas de blocs de taille paramétrique. Cette situation donne lieu à du contrôle non-affine mais peut être traité de manière précise par le choix d’approximations adaptées. Ceci ouvre la voie au transfert efficace de noyaux de calculs vers des accélérateurs tels que GPU, FPGA ou autre circuit spécialisé. Polyhedral techniques enable the application of analysis and code transformations on multi-dimensional structures such as nested loops and arrays. They are usually restricted to sequential programs whose control is both affine and static. This thesis extend them to programs involving for example non-analyzable conditions or expressing parallelism. The first result is the extension of the analysis of live-ranges and memory conflicts, for scalar and arrays, to programs with parallel or approximated specification. In previous work on memory allocation for which this analysis is required, the concept of time provides a total order over the instructions and the existence of this order is an implicit requirement. We showed that it is possible to carry out such analysis on any partial order which match the parallelism of the studied program. The second result is to extend memory folding techniques, based on Euclidean lattices, to automatically find an appropriate basis from the set of memory conflicts. This set is often non convex, case that was inadequately handled by the previous methods. The last result applies both previous analyzes to "pipelined" blocking methods, especially in case of parametric block size. This situation gives rise to non-affine control but can be processed accurately by the choice of suitable approximations. This paves the way for efficient kernel offloading to accelerators such as GPUs, FPGAs or other dedicated circuit. Electronic Thesis or Dissertation Text en http://www.theses.fr/2016LYSEN011/document Isoard, Alexandre 2016-07-05 Lyon Darte, Alain
collection NDLTD
language en
sources NDLTD
topic Modèle polyédrique
Déchargement de noyau de calcul
Tuilage paramétrique
Allocation mémoire
Polyhedral Model
Kernel Offloading
Parametric Tiling
Memory Allocation

spellingShingle Modèle polyédrique
Déchargement de noyau de calcul
Tuilage paramétrique
Allocation mémoire
Polyhedral Model
Kernel Offloading
Parametric Tiling
Memory Allocation

Isoard, Alexandre
Extending Polyhedral Techniques towards Parallel Specifications and Approximations
description Les techniques polyédriques permettent d’appliquer des analyses et transformations de code sur des structures multidimensionnelles telles que boucles imbriquées et tableaux. Elles sont en général restreintes aux programmes séquentiels dont le contrôle est affine et statique. Cette thèse consiste à les étendre à des programmes comportant par exemple des tests non analysables ou exprimant du parallélisme. Le premier résultat est l'extension de l’analyse de durée de vie et conflits mémoire, pour les scalaires et les tableaux, à des programmes à spécification parallèle ou approximée. Dans les travaux précédents sur l’allocation mémoire pour laquelle cette analyse est nécessaire, la notion de temps ordonne totalement les instructions entre elles et l’existence de cet ordre est implicite et nécessaire. Nous avons montré qu'il est possible de mener à bien de telles analyses sur un ordre partiel quelconque qui correspondra au parallélisme du programme étudié. Le deuxième résultat est d'étendre les techniques de repliement mémoire, basées sur les réseaux euclidiens, de manière à trouver automatiquement une base adéquate à partir de l'ensemble des conflits mémoire. Cet ensemble est fréquemment non convexe, cas qui était traité de façon insuffisante par les méthodes précédentes. Le dernier résultat applique les deux analyses précédentes au calcul par blocs "pipelinés" et notamment au cas de blocs de taille paramétrique. Cette situation donne lieu à du contrôle non-affine mais peut être traité de manière précise par le choix d’approximations adaptées. Ceci ouvre la voie au transfert efficace de noyaux de calculs vers des accélérateurs tels que GPU, FPGA ou autre circuit spécialisé. === Polyhedral techniques enable the application of analysis and code transformations on multi-dimensional structures such as nested loops and arrays. They are usually restricted to sequential programs whose control is both affine and static. This thesis extend them to programs involving for example non-analyzable conditions or expressing parallelism. The first result is the extension of the analysis of live-ranges and memory conflicts, for scalar and arrays, to programs with parallel or approximated specification. In previous work on memory allocation for which this analysis is required, the concept of time provides a total order over the instructions and the existence of this order is an implicit requirement. We showed that it is possible to carry out such analysis on any partial order which match the parallelism of the studied program. The second result is to extend memory folding techniques, based on Euclidean lattices, to automatically find an appropriate basis from the set of memory conflicts. This set is often non convex, case that was inadequately handled by the previous methods. The last result applies both previous analyzes to "pipelined" blocking methods, especially in case of parametric block size. This situation gives rise to non-affine control but can be processed accurately by the choice of suitable approximations. This paves the way for efficient kernel offloading to accelerators such as GPUs, FPGAs or other dedicated circuit.
author2 Lyon
author_facet Lyon
Isoard, Alexandre
author Isoard, Alexandre
author_sort Isoard, Alexandre
title Extending Polyhedral Techniques towards Parallel Specifications and Approximations
title_short Extending Polyhedral Techniques towards Parallel Specifications and Approximations
title_full Extending Polyhedral Techniques towards Parallel Specifications and Approximations
title_fullStr Extending Polyhedral Techniques towards Parallel Specifications and Approximations
title_full_unstemmed Extending Polyhedral Techniques towards Parallel Specifications and Approximations
title_sort extending polyhedral techniques towards parallel specifications and approximations
publishDate 2016
url http://www.theses.fr/2016LYSEN011/document
work_keys_str_mv AT isoardalexandre extendingpolyhedraltechniquestowardsparallelspecificationsandapproximations
AT isoardalexandre extensiondestechniquespolyedriquesverslesspecificationsparallellesetlesapproximations
_version_ 1719203138548793344