Please use this identifier to cite or link to this item: http://hdl.handle.net/10773/14053
Title: Porting of GNU linker for the EVP DSP
Author: Pires, João Carlos Cordeiro
Advisor: Pedreiras, Paulo Bacelar Reis
Moreira, Orlando
Keywords: Engenharia de computadores
Hardware de computadores
Processadores - Consumo de energia
Compiladores de programas - Optimização
Defense Date: 2014
Publisher: Universidade de Aveiro
Abstract: Nowadays, with the ubiquitous presence of mobile devices, modems play a relevant role. The EVP is a vector processor used by Ericsson on its 2G, 3G and 4G modems. Due to size, weight and power constraints, mobile devices have limited power sources, and because of that the hardware must be power efficient. The processors used in this type of devices have multiple power consumption states. If a processor is in a idle state i.e. without code to execute, it can switch off and consume less power. Moreover, if it is known beforehand that the processing takes less time than available, the processor can be set to a lower frequency (and lower voltage level), executing the same amount of work, but consuming considerable less energy. With this dynamic power consumption the autonomy of the devices is extended, because the processor can be in a reduced power consumption state most of the time. One way to maximize the time during which the processor stays in a reduced power consumption state is through the execution of optimized code. This can be achieved through manual code optimization, or by letting the compiler apply optimizations on the code. Link Time Optimization (LTO) is a compilation technique that tries to expand the optimizations scope by joining the input files and compile them as a unique file. Using this technique the compiler has more information during the optimization phase and should be able to do better decisions about the optimizations to apply. The team responsible for the development of Embedded Vector Processor (EVP) wanted to evaluate the benefits of LTO. To be able to implement and evaluate LTO it was necessary to migrate the GNU linker to support EVP and enable LTO compilation on the EVP backend of GNU Compiler Collection (GCC). This dissertation reports this work, including the necessary concepts to understand the problem addressed, how was added EVP support in the GNU linker, and the necessary step to enable LTO compilation on GCC. Also it will be presented and analysed the performance improvements of using LTO. The LTO compilation presents mixed results some of the test cases have a small performance improvements, and other present a small performance degradation. This was kind is expected because of the organization of the test code. It is composed by several files that do not have dependencies between them, in this situation the LTO compilation do not present much benefits.
Hoje em dia, com a ubiquidade dos dispositivos móveis, os modems desempenham um papel relevante. O EVP e um processador vectorial usado pela Ericsson nos seus modems 2G, 3G e 4G. Devido às condicionantes ao nível de tamanho, peso e energia, os dispositivos móveis tem fontes de energia limitadas, e por isso o hardware tem de ser energeticamente eficiente. Os processadores usados neste tipo de dispositivos, tem múltiplos estados de consumo. Se um processador estiver inactivo i.e. sem ter código a ser executado, o processador pode ser desligado passando a consumir menor energia. Mais ainda se for conhecido de antemão que o processamento demora menos tempo que o disponível, o processador pode reduzir a sua frequência (e a sua tensão), realizando a mesma quantidade de trabalho mas consumindo consideravelmente menos energia. Com o consumo energético dinâmico, a autonomia dos dispositivos e estendida, porque o processador pode estar grande parte do tempo num estado de baixo consumo energético. Uma maneira de maximizar o tempo que o processador está num estado de baixo consumo energético e através do uso de código optimizado. Este pode ser obtido através de optimização manual, ou deixando o compilador aplicar as otimiza ções. LTO é uma técnica de compilação que tenta expandir o âmbito das optimizações através da junção dos cheiros de entrada e compila-los como um s o. O uso desta técnica permite que o compilador tenha mais informação durante a fase de optimização e deve conseguir tomar melhores decisões sobre as optimizações a aplicar. A equipa responsável pelo desenvolvimento do EVP queria avaliar os benefícios do LTO. Para implementar e avaliar o LTO era preciso adicionar suporte para o EVP ao GNU linker e activar o LTO no GCC específico para o EVP. Esta dissertação reporta o trabalho realizado, incluindo os conceitos necessários para perceber o problema, como foi adicionado o suporte para o EVP no GNU linker e os passos necessários para activar a compilação LTO no GCC. Vão ser também apresentadas e analisadas as alterações de desempenho quando o LTO e usado. A compilação LTO apresenta resultados ambíguos, em alguns dos casos de teste houve pequenos aumentos de desempenho e noutros casos pequenas diminuições de desempenho. Estes resultados eram mais ou menos esperados, devido a organização do código de teste. Este é composto por diversos cheiros que não tem dependências entre si, nestas situações a compilação LTO não traz praticamente nenhuns benefícios.
Description: Mestrado em Engenharia de Computadores e Telemática
URI: http://hdl.handle.net/10773/14053
Appears in Collections:UA - Dissertações de mestrado
DETI - Dissertações de mestrado

Files in This Item:
File Description SizeFormat 
thesis.pdf591.44 kBAdobe PDFView/Open


FacebookTwitterLinkedIn
Formato BibTex MendeleyEndnote Degois 

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.