dc.creator | Jordan, Michael Guilherme | |
dc.date.accessioned | 2019-06-07T14:26:58Z | |
dc.date.available | 2019-06-07T14:26:58Z | |
dc.date.issued | 2019-02-22 | |
dc.identifier.uri | http://repositorio.ufsm.br/handle/1/16789 | |
dc.description.abstract | Multimedia applications have been widely present in embedded devices. Due to their
intrinsic nature, such application domain is benefited from Data Level Parallelism (DLP). In order
to improve performance-energy tradeoff, current processors enable DLP by coupling SIMD
(Single Instruction Multiple Data) engines, such as Intel AVX, ARM NEON and IBM Altivec.
Special libraries and compilers are used to support DLP execution on such engines. However,
timing overhead on hand coding is inevitable since most software developers are not skilled
to extract DLP using unfamiliar libraries. Considering the auto-vectorization through compiler,
although improving software productivity, it breaks software compatibility. Besides, both
methods are limited to static code analysis, which compromises performance gains.
In this dissertation, we propose a runtime DLP detection named as Dynamic SIMD
Assembler (DSA), which transparently identifies vectorizable code regions to execute in the
ARM NEON engine. Due to its dynamic fashion, DSA keeps software compatibility and avoids
timing overhead on software developing process. Results show that DSA outperforms ARM
NEON auto-vectorization compiler by 32% since it applies the partial vectorization of loops and
covers wider vectorizable regions, such as Dynamic Range, Sentinel and Conditional Loops. In
addition, DSA outperforms hand-vectorized code using ARM library by 26% reducing 45% of
energy consumption with no penalties over software development time. | eng |
dc.language | por | por |
dc.publisher | Universidade Federal de Santa Maria | por |
dc.rights | Attribution-NonCommercial-NoDerivatives 4.0 International | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/4.0/ | * |
dc.subject | DLP | por |
dc.subject | SIMD | por |
dc.subject | Vetorização | por |
dc.subject | ARM NEON | por |
dc.subject | Vectorization | eng |
dc.title | Aumentando os benefícios SIMD por meio de uma detecção de DLP em tempo de execução e energeticamente eficiente | por |
dc.title.alternative | Boosting SIMD benefits through a run-time and energy efficient DLP detection | eng |
dc.type | Dissertação | por |
dc.description.resumo | Aplicações multimídia estão amplamente presentes em dispositivos embarcados. Devido
à sua natureza intrínseca, este nicho de aplicação é beneficiado pelo Paralelismo a Nível de
Dados (DLP). Para melhorar a relação performance-energia, os processadores atuais habilitam
o DLP pelo acoplamento de engines SIMD (Single Instruction Multiple Data), como Intel AVX,
ARM NEON and IBM Altivec. Bibliotecas e compiladores especiais são usados para suportar
a execução de DLP nesses mecanismos. No entanto, a sobrecarga de tempo aplicada a vetorização
através de programação manual é inevitável, uma vez que a maioria dos desenvolvedores
de software não tem habilidade para extrair o DLP usando bibliotecas desconhecidas. Considerando
a auto-vetorização através do uso de compilador, apesar de melhorar a produtividade
de software, tal método quebra compatibilidade de software. Além disso, ambos os métodos
estão limitados à análise de código estático, o que compromete os ganhos de desempenho.
Nesta dissertação, propomos uma detecção de DLP em tempo de execução chamada
Dynamic SIMD Assembler (DSA), que identifica de forma transparente as regiões de código
que podem ser vetorizadas para serem executadas no mecanismo ARM NEON. Devido à sua
forma dinâmica, a DSA mantém compatibilidade de software e evita a sobrecarga de tempo
no processo de desenvolvimento de software. Os resultados mostram que a DSA supera a
auto-vetorização através do uso do compilador ARM NEON em 32%, pois aplica a vetorização
parcial de loops e abrange mais regiões vetorizáveis, como Loops de Tamanho Dinâmico, Loops
Sentinela e Loops Condicionais. Além disso, a DSA supera a programação manual através do
uso da biblioteca ARM em 26% reduzindo 45% do consumo de energia sem penalidades em
relação ao tempo de desenvolvimento do software. | por |
dc.contributor.advisor1 | Rutzig, Mateus Beck | |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/5220540043911446 | por |
dc.contributor.referee1 | Beck Filho, Antonio Carlos Schneider | |
dc.contributor.referee1Lattes | http://lattes.cnpq.br/5446996798632062 | por |
dc.contributor.referee2 | Barriquello, Carlos Henrique | |
dc.contributor.referee2Lattes | http://lattes.cnpq.br/4127396473202565 | por |
dc.creator.Lattes | http://lattes.cnpq.br/2776272141772584 | por |
dc.publisher.country | Brasil | por |
dc.publisher.department | Ciência da Computação | por |
dc.publisher.initials | UFSM | por |
dc.publisher.program | Programa de Pós-Graduação em Ciência da Computação | por |
dc.subject.cnpq | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | por |
dc.publisher.unidade | Centro de Tecnologia | por |