Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/ESBF-ANJQK8
Full metadata record
DC FieldValueLanguage
dc.contributor.advisor1Fernando Magno Quintao Pereirapt_BR
dc.contributor.referee1Luis Fabricio Wanderley Goespt_BR
dc.contributor.referee2Wagner Meira Juniorpt_BR
dc.creatorRubens Emilio Alves Moreirapt_BR
dc.date.accessioned2019-08-10T08:01:23Z-
dc.date.available2019-08-10T08:01:23Z-
dc.date.issued2017-03-21pt_BR
dc.identifier.urihttp://hdl.handle.net/1843/ESBF-ANJQK8-
dc.description.abstractSPMD programming languages for SIMD hardware such as C for CUDA, OpenCL or ISPC have contributed to increase the programmability of SIMD accelerators and graphics processing units. However, SPMD languages still lack the flexibility offered by low-level SIMD programming on explicit vectors. To close this expressiveness gap while preserving the SPMD abstraction, this work introduces the notion of Function Cal Re-Vectorization. We present a formal semantics of CREV, and an its implementation on the ISPC compiler. To validate our idea, we have used CREV to implement some classic algorithms, including string matching, depth first search and Bellman-Ford, with minimum effort.pt_BR
dc.description.resumoLinguagens SPMD para arquiteturas SIMD, como C para CUDA, OpenCL e ISPC contribuíram para melhorar a programabilidade de aceleradores SIMD e placas de processamento gráfico. No entanto, linguagens SPMD ainda não disponibilizam ao programador toda a flexibilidade que se pode obter a partir de programação SIMD explícita. A fim de contornar esta falha de expressividade, preservando a abstração SPMD, introduzimos a noção de Call Re-Vectorization (CREV). CREV permite que o programador altere a dimensão da vetorização durante a execução de um kernel SPMD, e o faz por meio de uma chamada aninhada de kernel. CREV provê uma abstração similar àquela oferecida pelo conceito de paralelismo dinâmico: é possível invocar um kernel dentro de outro kernel. Nossa abordagem reduz os custos associados a esse processo. Neste trabalho, apresentamos as definições formais de CREV, além de sua implementação no compilador ISPC. Para validar nossa abordagem, implementamosuma série de algoritmos clássicos explorando o conceito de Call Re-Vectorization. Tais algoritmos incluem casamento de padrão, busca em profundidade e Bellman-Ford, e foram implementados com CREV sem muito esforço. Uma vez compilados usando ISPC para gerar instruções vetoriais de máquinas Intel, nossas implementações sãotão eficientes quanto soluções de estado-da-arte, sendo, em geral, mais simples de se programar. Por exemplo, nossa implementação simples de casamento de padrão atinge speedup de 12% sobre o algoritmo Knuth-Morris-Pratt.pt_BR
dc.languageInglêspt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectCompiladorpt_BR
dc.subjectVetorizacaopt_BR
dc.subjectSIMDpt_BR
dc.subject.otherCompiladores (Computadores)pt_BR
dc.subject.otherComputaçãopt_BR
dc.subject.otherArquitetura de computadorpt_BR
dc.titleFunction Call Re-vectorizationpt_BR
dc.typeDissertação de Mestradopt_BR
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
rubensemilio.pdf1.46 MBAdobe PDFView/Open


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