Narrow your search
Listing 1 - 10 of 175 << page
of 18
>>
Sort by

Dissertation
Energy-aware datapath optimizations at the architecture-compiler interface
Authors: ---
ISBN: 9789460180798 Year: 2009 Publisher: Leuven Katholieke Universiteit Leuven

Loading...
Export citation

Choose an application

Bookmark

Abstract

Moderne consumenten beschikken over tal van elektronische toestellen, zoals mobiele telefoons, digitale camera's, GPS, PDA en MP3 spelers. De mogelijkheden van elk van deze toestellen is gedurende de voorbije jaren sterk toegenomen, met zowel een spectaculaire verbetering in het aantal functies, als in de kwaliteit van de geleverde functionaliteit. Het is echter niet evident om de vereiste rekenkracht te bieden die nodig is om deze trend mogelijk te maken, binnen de beperkingen van een batterijgevoed draagbaar toestel. Hierdoor is het bij het ontwerp van de draagbare toestellen van de toekomst nodig om het volledige systeem te optimaliseren. De ingebedde processoren moeten de juiste balans houden tussen flexibiliteit, energie-effciëntie en rekenkracht. Hierbij zal een ontwerper het energieverbruik minimaliseren (zover als nodig is), voor de vereiste rekenkracht, met een voldoende flexibiliteit. Hierbij moet de invloed van het ontwerp van een component op andere delen van het systeem in rekening worden gebracht, wat leidt tot een zoektocht naar de Pareto-optimale punten in een multidimensionale exploratieruimte.De focus van dit onderzoek, binnen het globale ontwerp van batterijgevoede ingebedde systemen, ligt op de energiebewuste architectuurexploratie van domeinspecifieke processordatapaden tijdens de vroegere fases van het ontwerp en de co-optimalisatie van de datapadarchitectuur met de bijbehorende afbeeldings- of compilatietechnieken. Door het uitvoeren van een gedetailleerde energieschatting voor een volledig ingebed systeem worden de flessenhalzen geïdentificeerd, zowel voor het energieverbruik als voor de performantie. Tegelijkertijd wordt een duidelijk overzicht gegeven van de onderlinge relaties tussen de belangrijkste componenten. Op basis van deze kennis worden architectuurwijzigingen en bijbehorende compilatietechnieken voorgesteld, met een duidelijke focus op het processordatapad. De belangrijkste bijdragen van deze thesis zijn ondermeer een energie-, performantie- en verbindingsgevoelige exploratie voor ingebedde processoren (toegepast op hoge granulariteit herconfigureerbare hardware), een softwaremethode voor het exploiteren van heterogeen dataparallelisme, een techniek voor een contextafhankelijke vereenvoudiging van vermenigvuldigingen met een constante factor, inclusief de wisselwerking met de nauwkeurigheidsvereisten van de applicatie.


Dissertation
Efficient automatic verification of loop and data-flow transformations by functional equivalence checking
Authors: ---
ISBN: 9789056826772 Year: 2008 Publisher: Leuven Katholieke Universiteit Leuven

Loading...
Export citation

Choose an application

Bookmark

Abstract

Ontwerpers van digitale signaalverwerkings en/of wetenschappelijke toepassingen maken intensief gebruik van lus- en datastroomtransformaties om de performantie van hun computerprogramma’s op te drijven. De controle op de correctheid van dergelijke transformaties is zeer tijdsrovend. In deze thesis stellen we daarom een methode voor om automatische en op een effici¨ente wijze de functionele equivalentie tussen het originele en het getransformeerde programma na te gaan. Lus- and datastroomtransformaties worden veelvuldig gebruikt door ontwerpers van ingebedde systemen. Ze verminderen immers de benodigde geheugenruimte en laten toe om dezelfde performantie met een lagere processorsnelheid te halen. In een typisch ontwerp, kiezen de designers op basis van de originele, niet geoptimaliseerde code een aantal mogelijke transformaties uit om hierop uit te voeren. De keuze van welke transformaties ze gebruiken, hangt in sterke mate af van de beoogde processor- en geheugenarchitectuur. Deze afhankelijkheid maakt het erg moeilijk voor hedendaagse compilers om de juiste transformaties automatisch uit te kiezen en uit te voeren. Dergelijke transformaties moeten daarom nog steeds manueel toepast worden, al dan niet met computerondersteuning. Dit houdt in dat het getransformeerde programma geverifi¨eerd moet worden. Hiervoor vertrouwen ontwerpers meestal op simulaties. Deze tijdsrovende simulatie-gebaseerde verficatie laat echter niet toe met zekerheid te garanderen dat het getransformeerde programma volledig foutvrij is. In deze verhandeling willen we net dit laatste probleem oplossen. Deze verhandeling presenteert daarom een methode om de functionele equivalentie tussen twee programma’s na te gaan. De methode richt zich tot programma’s en transformaties in de context van digitale signaalverwerkings- en wetenschappelijke toepassingen. De procedures in deze klasse van programma’s zijn erg “array-intensief”, maken gebruik van stapsgewijze affiene expressies als index of bovengrens van referenties naar arrays, en hebben een statische controlestroom. Tenslotte benut de voorgestelde methode de enkelvoudige toekenningsvorm in deze programma’s. In onze methode stellen we het originele en getransformeerde programma voor op basis van de data- en operatorafhankelijkheden tussen de elementen van de invoer- en uitvoersvariabelen. Vervolgens gaan we de functionele equivalentie na tussen de modellen van de originele code enerzijds en van de getransformeerde code anderzijds. Door gebruik te maken van waarde-gebaseerde afhankelijkheden kan de methode equivalentie nagaan tussen twee verzamelingen van waarden die overeenkomen met de punten uit de datastroom van de twee programma’s in kwestie. Indien het getransformeerde programma niet equivalent blijkt te zijn met het originele programma, dan genereert onze methode een lijst van de locaties in het getransformeerde programma waar de potentiele fout zou kunnen zitten. De effici¨entie van de methode wordt ge¨ıllustreerd door middel van een prototype implementatie en de uitvoering ervan op verschillende realistische en veel-voorkomende programma’s. Automatic and efficient verification of loop and data-flow transformations commonly applied while optimizing digital signal processing and scientific computing programs is feasible by functional equivalence checking of the original and transformed programs. Application of transformations, in general, is known to enable efficient implementation of programs. For resource constrained embedded systems, however, transformations are essential to meet the stringent constraints on the power consumption and performance of the implementation. The choice of relevant transformations depends here on the target processor and memory architecture. Hence compilers are often not able to apply such transformations, leaving them to be applied either manually or using transformation tools. This necessitates verification of the correctness of the transformed program. At present, the verification is being done by simulation-based testing. But testing is very time-consuming, often inconclusive and calls for additional effort for debugging. To overcome these limitations, this dissertation presents a fully automatic and efficient functional equivalence checking method for formal verification of the transformed program against the original. The presented equivalence checking method targets a class of programs and transformations that is common in the domain of digital signal processing and scientific computing applications. Most importantly, in these applications, program routines subject to transformations are typically array intensive, with piecewise affine expressions to index and bound the references to arrays, and have static control-flow. The method is based on a model that represents the data and operator dependencies between the elements of the output and the input variables relying on the single assignment form of the program. It is able to check equivalence of models of the original and the transformed programs that are related through a combination of global loop and data-flow transformations. Reasoning with value-based dependencies, it establishes equivalences between sets of values in corresponding points in the data-flow of the two programs. When the transformed program fails to pass the check, it generates feedback on the possible locations of errors in the program. A prototype implementation of the method demonstrates its efficiency on real-life program pairs.


Dissertation
Techniques for more efficient ILP data mining engines
Authors: ---
ISBN: 9056827367 Year: 2006 Publisher: Leuven Katholieke Universiteit Leuven

Loading...
Export citation

Choose an application

Bookmark

Abstract

Het doel van data mining is het vinden van regels (of hypothesen) die niet-triviale relaties, patronen of eigenschappen van een grote hoeveelheid gegevens omschrijven, teneinde de gegevens beter te begrijpen. Inductief Logisch Programmeren (ILP) is een relationele data mining techniek gebaseerd op eerste orde logica. Logica is een krachtig en natuurlijk formalisme voor het voorstellen van kennis, wat ILP toelaat om concepten te leren die niet geleerd kunnen worden met een minder krachtig formalisme. Omwille van zijn hoge expressiviteit is de ruimte van alle mogelijke hypothesen echter zeer complex, waardoor het zoeken naar een goede hypothese een complexe taak wordt. Een van de belangrijkste factoren bij de uitvoering van ILP algoritmen is de motor die door het algoritme gebruikt wordt. Deze motor is verantwoordelijk voor het evalueren van kandidaatshypothesen (of queries) op de gegevens, en voorziet primitieven voor het ILP algoritme om de evaluatie van queries te sturen. In dit werk presenteren we verschillende technieken voor het optimaliseren van motoren gebruikt door ILP algoritmen. We combineren twee bestaande onafhankelijke technieken voor query-evaluatie: de once-transformatie, dewelke redundante uitvoering binnen dezelfde query probeert te vermijden, en query packs, dewelke redundantie in de uitvoering van meerdere queries probeert te vermijden. De algemene aanpak voor query-evaluatie is om de query te compileren naar een efficiëntere versie alvorens hem uit te voeren. We bestuderen alternatieven voor deze aanpak, en stellen een performantere compilatietechniek voor, tesamen met een luie variant die enkel delen van queries compileert als deze nodig zijn. Analyse en debuggen van query uitvoering is een belangrijk deel van het ontwikkelingsproces van meer efficiënte query uitvoeringstechnieken. We stellen een spoorgebaseerde aanpak voor het debuggen en analyseren van de uitvoeringsstap van ILP algoritmen. We doen een studie van het afwegen van geheugenruimte tegenover uitvoeringstijd op verschillende niveaus van ILP uitvoering. Deze technieken bevatten predikaatstabellering en programmaspecialisatie, tesamen met meer algoritme-specifieke technieken. The goal of data mining is to find rules (or hypotheses) that describe non-trivial relations, patterns or properties of large quantities of data, thus helping in understanding the data better. Inductive Logic Programming (ILP) is a relational data mining technique based on first order logic. Logic provides a powerful yet natural formalism for representing knowledge, allowing ILP to learn concepts that cannot be learned using less powerful data mining techniques. However, because of its high expressivity, the space of all possible hypotheses is also very complex, due to which the search for good hypotheses becomes a complex task. One of the most important factors in the execution of ILP algorithms is the engine underlying the algorithm. This engine is responsible for evaluating candidate hypotheses (or queries) on the data, and provides primitives to the ILP algorithm for guiding the evaluation of queries. In this work, we present different techniques for optimizing the engines used by ILP algorithms. We combine two existing, independent, and successful optimization techniques for query evaluation: the once transformation, which aims to avoid redundant execution within a single query, and query packs, which avoid redundancy in the execution of multiple queries. The general approach to query evaluation is to compile the query to a more efficient version instead of executing the query directly. We study alternatives to this approach, and propose a more performant compilation technique, together with a lazy variant that only compiles parts of queries as they are needed. Analysis and debugging of query execution is an important part of the development of more efficient query execution techniques. We present a trace-based technique for debugging and analyzing the execution step of ILP algorithms. We present a study of trading off extra memory for execution time on different levels of ILP execution. These techniques include predicate tabling and program specialization, together with more ILP algorithm-specific techniques. De hoeveelheid gegevens die opgeslagen worden op digitale media groeit zeer snel. Het hoofddoel van het bewaren van deze gegevens is om er nieuwe informatie uit af te leiden: supermarken verzamelen gegevens over het koopgedrag van hun klanten, om zo hun marketing campagnes beter te kunnen richten; zoekmotoren bewaren informatie over vorige zoekopdrachten om gepersonaliseerde resultaten te kunnen tonen, ... Het doel van data mining is om uit deze grote hoeveelheden gegevens nieuwe informatie af te leiden. Inductief Logisch Programmeren (ILP) is een krachtige data mining techniek, gebaseerd op logisch redeneren. Omwille van de complexe informatie die ILP kan afleiden uit gegevens, is het afleiden van deze informatie zelf een zeer zware taak. Een cruciaal element bij het afleiden van nieuwe informatie, gebruik makend van ILP, is de motor van het ILP systeem. In dit werk bestuderen we technieken voor het bouwen van efficiëntere ILP motoren.

Listing 1 - 10 of 175 << page
of 18
>>
Sort by