• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 16
  • 9
  • 1
  • Tagged with
  • 26
  • 16
  • 16
  • 11
  • 6
  • 6
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 4
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
11

Runtime optimization of binary through vectorization transformations / Optimisation dynamique de code binaire par des transformations vectorielles

Hallou, Nabil 18 December 2017 (has links)
Les applications ne sont pas toujours optimisées pour le matériel sur lequel elles s'exécutent, comme les logiciels distribués sous forme binaire, ou le déploiement des programmes dans des fermes de calcul. On se concentre sur la maximisation de l'efficacité du processeur pour les extensions SIMD. Nous montrons que de nombreuses boucles compilées pour x86 SSE peuvent être converties dynamiquement en versions AVX plus récentes et plus puissantes. Nous obtenons des accélérations conformes à celles d'un compilateur natif ciblant AVX. De plus, on vectorise en temps réel des boucles scalaires. Nous avons intégré des logiciels libres pour (1) transformer dynamiquement le binaire vers la forme de représentation intermédiaire, (2) abstraire et vectoriser les boucles fréquemment exécutées dans le modèle polyédrique (3) enfin les compiler. Les accélérations obtenues sont proches du nombre d'éléments pouvant être traités simultanément par l'unité SIMD. / In many cases, applications are not optimized for the hardware on which they run. This is due to backward compatibility of ISA that guarantees the functionality but not the best exploitation of the hardware. Many reasons contribute to this unsatisfying situation such as legacy code, commercial code distributed in binary form, or deployment on compute farms. Our work focuses on maximizing the CPU efficiency for the SIMD extensions. The first contribution is a lightweight binary translation mechanism that does not include a vectorizer, but instead leverages what a static vectorizer previously did. We show that many loops compiled for x86 SSE can be dynamically converted to the more recent and more powerful AVX; as well as, how correctness is maintained with regards to challenges such as data dependencies and reductions. We obtain speedups in line with those of a native compiler targeting AVX. The second contribution is a runtime auto-vectorization of scalar loops. For this purpose, we use open source frame-works that we have tuned and integrated to (1) dynamically lift the x86 binary into the Intermediate Representation form of the LLVM compiler, (2) abstract hot loops in the polyhedral model, (3) use the power of this mathematical framework to vectorize them, and (4) finally compile them back into executable form using the LLVM Just-In-Time compiler. In most cases, the obtained speedups are close to the number of elements that can be simultaneously processed by the SIMD unit. The re-vectorizer and auto-vectorizer are implemented inside a dynamic optimization platform; it is completely transparent to the user, does not require any rewriting of the binaries, and operates during program execution.
12

Compilation optimisante pour processeurs extensibles

Floc'h, Antoine 08 June 2012 (has links) (PDF)
Les processeurs à jeu d'instructions spécifiques (ASIP) constituent un compromis entre les performances d'un circuit matériel dédié et la flexibilité d'un processeur programmable. Ces processeurs spécialisés peuvent être composés d'un processeur généraliste dont le jeu d'instructions est étendu par des instructions spécifiques à une ou plusieurs applications et qui sont exécutées sur une extension matérielle. On parle alors de processeurs extensibles. Si le coût de conception et de vérification de telles architectures est considérablement réduit en comparaison à une conception complète, la complexité est en partie reportée sur l'étape de compilation. En effet, le jeu d'instructions d'un processeur extensible est à la fois une entrée et une sortie du processus de compilation. Cette thèse propose plusieurs contributions pour guider le processus de conception de telles architectures à travers des techniques d'optimisations adaptées aux processeurs extensibles. La première de ces contributions consiste à sélectionner et à ordonnancer les instructions spécialisées VLIW en résolvant un unique problème d'optimisation de programmation par contraintes (CP). D'autre part, nous proposons une technique originale qui traite de l'interaction entre l'optimisation de code et l'extension de jeu d'instructions. Le principe est de transformer automatiquement le code original des nids de boucles d'un programme (à l'aide du modèle polyédrique) afin de sélectionner des instructions spécialisées vectorisables et dont les données temporaires, produites lors d'une itération de boucle, sont mémorisées sur l'extension matérielle du processeur.
13

Méthodes Statiques et Dynamiques de Compilation Polyédrique pour l'Exécution en Environnement Multi-Cœurs

Pradelle, Benoit 20 December 2011 (has links) (PDF)
Depuis plusieurs années, le nombre de cœurs de calcul dans les processeurs ne cesse d'augmenter à chaque nouvelle génération. Les processeurs multi-cœurs sont maintenant très fréquents mais le développement de logiciels séquentiels reste une pratique très courante. Pour palier à ce problème, des outils de parallélisation automatique ont été proposés mais ils ne sont pas encore prêts pour une utilisation à grande échelle. Nous proposons d'étendre les outils existants dans trois directions différentes. Premièrement, on peut remarquer que le code source de certains programmes n'est pas disponible. Nous proposons donc un système de parallélisation statique de code binaire qui permet de paralléliser un application séquentielle déjà compilée. Ensuite, on peut s'apercevoir que la performance d'un programme dépend du contexte d'exécution dans lequel il s'exécute. Nous présentons donc un système qui permet de sélectionner une version d'un programme parmi plusieurs afin d'exploiter au mieux les particularités du contexte d'exécution courant. Enfin, étant donné que certains programmes sont difficiles à analyser statiquement, nous proposons un système de parallélisation spéculative permettant d'appliquer dynamiquement des transformations de code complexes sur ces programmes. Ces trois systèmes utilisent le modèles polyédrique comme une boîte à outil permettant d'analyser, de transformer ou de paralléliser les programmes. En travaillant à différentes phases de la vie des programmes, ils forment une approche globale qui étend les techniques de parallélisation existantes.
14

Reconstruction de surfaces tridimensionnelles en vision par ordinateur

Zhao, Changsheng 21 December 1993 (has links) (PDF)
Le cadre général de ce travail est l'étude de la représentation et la reconstruction de surfaces tridimensionnelles d'objets non polyédriques, lorsqu'ils sont observes avec des systèmes de vision passifs. Cette thèse est plus spécialement consacrée a la reconstruction de surfaces tridimensionnelles en utilisant des surfaces b-splines, a partir de l'observation du mouvement des contours occultant, dans une séquence d'images calibrées. Nous présentons plusieurs résultats auxquels nous avons abouti : premièrement, nous introduisons un algorithme pyramidal de suivi de contours courbes et la correction des anomalies de contours dans une sequence d'images. Deuxièmement, une methode originale de reconstruction de surfaces b-splines tridimensionnelles est développée a partir d'une séquence d'images calibrées. Finalement, nous proposons une approche de raccordement de différentes surfaces b-splines reconstruites en utilisant le maillage triangulaire et l'interpolation de surfaces. Des résultats sur des données synthétiques et des données réelles sont présentés. Les applications potentielles de ce travail sont très nombreuses dans le cadre des problèmes de modélisation d'objets non polyédriques dans une séquence d'images calibrées
15

Détermination géométrique de chemins géodésiques sur des surfaces du subdivision

Pham-Trong, Valérie 28 September 2001 (has links) (PDF)
Un chemin géodésique entre deux points sur une surface de R³ est un plus court chemin local. Nous proposons deux méthodes de calcul de géodésiques qui ont l'originalité d'utiliser des outils de modélisation géométrique dans ce contexte de géométrie différentielle. La méthode de minimisation propose de travailler sur des surfaces paramétrées et d'étudier le problème en se placant dans l'espace des paramètres. Les courbes considérées y sont les courbes de Bézier et les courbes splines.Leurs points de contrôle constituent les variables par rapport auxquelles la longueur du chemin image sur la surface est minimisée. L'implémentation de cette méthode d'approximation et sa validation sont développées.La méthode de subdivision propose de travailler sur des surfaces de subdivision, limites d'une suite de réseaux générés par un schéma de subdivision. Une méthode itérative de calcul exact de chemin géodésique sur une surface polyédrique est développée. Celle-ci permet ainsi de calculer une suite de chemins géodésiques sur les surfaces polyédriques issues des réseaux de contrôle successifs.La convergence de cette suite de chemins géodésiques est traitée et de nombreux exemples sont présentés.Quelques applications sont enfin proposées : la génération de maillages surfaciques et la modélisation des fibres du myocarde pour l'imagerie médicale.
16

Beyond the realm of the polyhedral model : combining speculative program parallelization with polyhedral compilation / Au-delà des limites du modèle polyédrique : l'alliage de la parallélisation spéculative de programmes avec la compilation polyédrique

Sukumaran Rajam, Aravind 05 November 2015 (has links)
Dans cette thèse, nous présentons nos contributions à Apollo (Automatic speculative POLyhedral Loop Optimizer), qui est un compilateur automatique combinant la parallélisation spéculative et le modèle polyédrique, afin d’optimiser les codes à la volée. En effectuant une instrumentation partielle au cours de l’exécution, et en la soumettant à une interpolation, Apollo est capable de construire un modèle polyédrique spéculatif dynamiquement. Ce modèle spéculatif est ensuite transmis à Pluto, qui est un ordonnanceur polyédrique statique. Apollo sélectionne ensuite un des squelettes d’optimisation de code générés statiquement, et l’instancie. La partie dynamique d’Apollo surveille continuellement l’exécution du code afin de détecter de manière dé- centralisée toute violation de dépendance. Une autre contribution importante de cette thèse est notre extension du modèle polyédrique aux codes exhibant un comportement non-linéaire. Grâce au contexte dynamique et spéculatif d’Apollo, les comportements non-linéaires sont soit modélisés par des hyperplans de régression linéaire formant des tubes, soit par des intervalles de valeurs atteintes. Notre approche permet l’application de transformations polyédriques à des codes non-linéaires grâce à un système de vérification de la spéculation hybride, combinant vérifications centralisées et décentralisées. / In this thesis, we present our contributions to APOLLO (Automatic speculative POLyhedral Loop Optimizer), which is an automated compiler combining Thread Level Speculation (TLS) and the polyhedral model to optimize codes on the fly. By doing partial instrumentation at runtime, and subjecting it to interpolation, Apollo is able to construct a speculative polyhedral model dynamically. The speculative model is then passed to Pluto -a static polyhedral scheduler-. Apollo then selects one of the statically generated code optimization skeletons and instantiates it. The runtime continuously monitors the code for any dependence violation in a decentralized manner. Another important contribution of this thesis is our extension of the polyhedral model to codes exhibiting a non linear behavior. Thanks to the dynamic and speculative context offered by Apollo, non-linear behaviors are either modeled using linear regression hyperplanes forming tubes, or using ranges of reached values. Our approach enables the application of polyhedral transformations to non-linear codes thanks to an hybrid centralized-decentralized speculation verification system
17

Efficient search-based strategies for polyhedral compilation : algorithms and experience in a production compiler / Stratégies exploratoires efficaces pour la compilation polyédrique : algorithmes et expérience dans un compilateur de production

Trifunovic, Konrad 04 July 2011 (has links)
Une pression accrue s'exerce sur les compilateurs pour mettre en œuvre des transformations de programmes de plus en plus complexes délivrant le potentiel de performance des processeurs multicœurs et des accélérateurs hétérogènes. L'espace de recherche des optimisations de programmes possibles est gigantesque est manque de structure. La recherche de la meilleure transformation, qui inclut la prédiction des gains estimés de performance offerts par cette transformation, constitue le problème le plus difficiles pour les compilateurs optimisants modernes. Nous avons choisi de nous concentrer sur les transformations de boucles et sur leur automatisation, exprimées dans le modèle polyédrique. Les méthodes d'optimisation de programmes dans le modèle polyédrique se répartissent grossièrement en deux classes. La première repose sur l'optimisation linéaire d'une fonction de analytique de coût. La deuxième classe de méthodes met en œuvre une recherche itérative. La première approche est rapide, mais elle est facilement mise en défaut en ce qui concerne la découverte de la solution optimale. L'approche itérative est plus précise, mais le temps de compilation peut devenir prohibitif. Cette thèse contribue une approche nouvelle de la recherche itérative de transformations de programmes dans le modèle polyédrique. La nouvelle méthode proposée possède la précision et la capacité effective à extraire des transformations profitables des méthodes itératives, tout en en minimisant les faiblesses. Notre approche repose sur l'évaluation systématique d'une fonction de coût et de prédiction de performances non-linéaire. Par ailleurs, la parallélisation automatique dans le modèle polyédrique est actuellement dominée par des outils de compilation source-à-source. Nous avons choisi au contraire d'implémenter nos techniques dans la plateforme GCC, en opérant sur une représentation de code de bas niveau, à trois adresses. Nous montrons que le niveau d'abstraction de la représentation intermédiaire choisie engendre des difficultés de passage à l'échelle, et nous montrons comment les surmonter. À l'inverse, nous montrons qu'une représentation intermédiaire de bas niveau ouvre de nouveaux degrés de liberté, bénéficiant à notre stratégie itérative de recherche de transformations, et à la compilation polyédrique de manière générale. / In order to take the performance advantages of the current multicore and heterogeneous architectures the compilers are required to perform more and more complex program transformations. The search space of the possible program optimizations is huge and unstructured. Selecting the best transformation and predicting the potential performance benefits of that transformation is the major problem in today's optimizing compilers. The promising approach to handling the program optimizations is to focus on the automatic loop optimizations expressed in the polyhedral model. The current approaches for optimizing programs in the polyhedral model broadly fall into two classes. The first class of the methods is based on the linear optimization of the analytical cost function. The second class is based on the exhaustive iterative search. While the first approach is fast, it can easily miss the optimal solution. The iterative approach is more precise, but its running time might be prohibitively expensive. In this thesis we present a novel search-based approach to program transformations in the polyhedral model. The new method combines the benefits - effectiveness and precision - of the current approaches, while it tries to minimize their drawbacks. Our approach is based on enumerating the evaluations of the precise, nonlinear performance predicting cost-function. The current practice is to use the polyhedral model in the context of source-to-source compilers. We have implemented our techniques in a GCC framework that is based on the low level three address code representation. We show that the chosen level of abstraction for the intermediate representation poses scalability challenges, and we show the ways to overcome those problems. On the other hand, it is shown that the low level IR abstraction opens new degrees of freedom that are beneficial for the search-based transformation strategies and for the polyhedral compilation in general.
18

Automatic code generation and optimization of multi-dimensional stencil computations on distributed-memory architectures / Génération automatique de code et optimisation de calculs stencils sur des architectures à mémoire distribuée

Saied, Mariem 25 September 2018 (has links)
Nous proposons Dido, un langage dédié (DSL) implicitement parallèle qui capture les spécifications de haut niveau des stencils et génère automatiquement du code parallèle de haute performance pour les architectures à mémoire distribuée. Le code généré utilise ORWL en tant que interface de communication et runtime. Nous montrons que Dido réalise un grand progrès en termes de productivité sans sacrifier les performances. Dido prend en charge une large gamme de calculs stencils ainsi que des applications réelles à base de stencils. Nous montrons que le code généré par Dido est bien structuré et se prête à de différentes optimisations possibles. Nous combinons également la technique de génération de code de Dido avec Pluto l'optimiseur polyédrique de boucles pour améliorer la localité des données. Nous présentons des expériences qui prouvent l'efficacité et la scalabilité du code généré qui atteint de meilleures performances que les implémentations ORWL et MPI écrites à la main. / In this work, we present Dido, an implicitly parallel domain-specific language (DSL) that captures high-level stencil abstractions and automatically generates high-performance parallel stencil code for distributed-memory architectures. The generated code uses ORWL as a communication and synchronization backend. We show that Dido achieves a huge progress in terms of programmer productivity without sacrificing the performance. Dido supports a wide range of stencil computations and real-world stencil-based applications. We show that the well-structured code generated by Dido lends itself to different possible optimizations and study the performance of two of them. We also combine Dido's code generation technique with the polyhedral loop optimizer Pluto to increase data locality and improve intra-node data reuse. We present experiments that prove the efficiency and scalability of the generated code that outperforms both ORWL and MPI hand-crafted implementations.
19

Nanostructuration of epoxy networks by using polyhedral oligomeric silsesquioxanes POSS and its copolymers / Nanostructuration de réseaux époxy des à l'aide de polyédriques oligomères POSS silsesquioxanes et ses copolymères

Chen, Jiangfeng 08 June 2012 (has links)
Une série de composant hybride basée sur réactives polyédriques oligomères silsesquioxane (POSS) precusors et ses copolymères réactifs de PGMA ont été synthétisés et utilisés pour nanobuild en époxy. POSS réactifs et de copolymères en dispersion dans la matrice homogène dans, au délà de POSS-POSS interaction, ce qui a entraîné la séparation de phase macroscopique. Les nanocomposites obtenus ont été analysés par microscopie électronique à balayage, microscopie électronique à transmission, diffusion des rayons X et l'analyse mécanique dynamique. Un analogue de POSS (notée POSSMOCA) a été synthétisé par réaction d'addition, qui a réactive liaison groupe amino dans le réseau époxy et d'améliorer la stabilité thermique, en raison du silicium, d'azote et un atome d'halogène structurel. Époxy / polyédriques silsesquioxanes oligomères (POSS) composites hybrides ont été préparés à partir de pré-réaction entre l'éther de silanol POSS-OH et diglycidylique trifonctionnel de bisphénol A (DGEBA) par l'intermédiaire du silanol et un groupe oxiranne. Réactif POSS-PGMA a été polymérisé par polymérisation par transfert de réversible par addition-fragmentation. Il est facile à queue de la compatibilité du copolymère séquencé époxyde avec une matrice de l'étape de croissance-polymérisé, pour former par réaction avec nanostructure segements PGMA. Dans le cas d'inertes POSS-PMMA copolymères modifiés époxy, topologie de copolymère défini la morphologie finale et l'interaction entre époxy et entre eux, en raison de la liaison hydrogène directionnelle à effet de dilution. Tg de conversion époxyde différente, obéi de Gordon-Taylor équation et l'équation Kwei, k qui reflète l'interaction de modificateur et les oligomères DGEBA / MEDA et époxy / amine, était cohérente de la rhéologie et les résultats dynamiques. / A series of hybrid component based on reactive polyhedral oligomeric silsesquioxane(POSS) precusors and its reactive copolymers of PGMA were synthesized and utilized to nanobuild in epoxy. Reactive POSS and copolymer dispersed in homogenous in matrix, overcomed POSS-POSS interaction, which resulted in macroscale phase separation. The nanocomposites obtained were analyzed by Scanning electron microscopy, Transmission electron microscopy, X-ray scattering and dynamic mechanical. An analogue of POSS (denoted as POSSMOCA) was synthesized via addition reaction, which had reactive amino group bonding into epoxy network and improved the thermostability, because of the structural silicon, nitrogen and halogen. Epoxy/polyhedral oligomeric silsesquioxanes (POSS) hybrid composites were prepared from prereaction between trifunctional silanol POSS-OH and diglycidyl ether of bisphenol A (DGEBA) via silanol and the oxirane group. Reactive POSS-PGMA was polymerized via Reversible addition-fragmentation transfer polymerization. It was easy to tail the compatibility of the epoxide block copolymer with a step-growth polymerized matrix, to form nanostructure via reaction with PGMA segements. In the case of inert POSS-PMMA copolymers modified epoxy, topology of copolymer defined the final morphology and interaction between epoxy and them, because of directional hydrogen bonding and dilution effect. Tg of different epoxide conversion, obeyed of Gordon-Taylor equation and Kwei equation, k which reflected the interaction of modifier and DGEBA/MEDA and epoxy/amine oligomers, was consistent of the rheology and dynamic results.
20

Vérification Formelle dans le Modèle Polyédrique

Morin-Allory, Katell 27 October 2004 (has links) (PDF)
Les travaux présentés dans ce document sont orientés vers la vérification formelle de propriétés de sûreté dans le cadre de la conception des systèmes enfouis. Nous nous plaçons dans le formalisme du modèle polyédrique, combinaison des systèmes d'équations récurrentes affines avec les polyèdes entiers. Ce modèle permet de faire de la synthèse de haut niveau pour générer des architectures parallèles à partir de la description d'un système régulier dont les dimensions sont définies par des paramètres symboliques. Nous nous intéressons à la vérification de propriétés de sûreté portant sur des signaux booléens de contrôle, générés ou introduits manuellement lors de la synthèse. Les propriétés sur de tels signaux seront appelées propriétés de contrôle. Nous montrons dans ce document que le modèle polyédrique est adapté pour la vérification formelle de propriétés de contrôle.<br /> Dans ce travail, nous développons une "logique polyédrique" qui nous permet de spécifier et prouver des propriétés dans le modèle polyédrique. La syntaxe et la sémantique des formules logiques s'appuient sur celles d'un langage de description de systèmes d'équations récurrentes affines sur des domaines polyédriques. Les règles de déduction sont de différents types : des règles "classiques" sur les connecteurs logiques, des règles de réécriture et des règles induites par des calculs dans le modèle. Nous développons des algorithmes pour automatiser la construction des preuves, ainsi que des techniques heuristiques permettant d'accélérer cette construction. Ces algorithmes nous permettent de prouver des propriétés simples, comme par exemple la propriété qu'un signal vaut toujours vrai pour un ensemble de processeurs et une durée déterminés. Nous présentons ensuite et commençons à développer des pistes afin d'enrichir notre logique pour exprimer des propriétés plus complexes, comme par exemple des propriétés d'exclusion mutuelle. Nous présentons quelques tactiques de preuve pour ces propriétés plus riches.

Page generated in 0.0567 seconds