Function Call Re-vectorization
| Ano de defesa: | 2017 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Universidade Federal de Minas Gerais
|
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://hdl.handle.net/1843/ESBF-ANJQK8 |
Resumo: | SPMD 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. |
| id |
UFMG_cfaad67a0c5c9409b3e4803c14f1035f |
|---|---|
| oai_identifier_str |
oai:repositorio.ufmg.br:1843/ESBF-ANJQK8 |
| network_acronym_str |
UFMG |
| network_name_str |
Repositório Institucional da UFMG |
| repository_id_str |
|
| spelling |
2019-08-10T08:01:23Z2025-09-09T00:19:14Z2019-08-10T08:01:23Z2017-03-21https://hdl.handle.net/1843/ESBF-ANJQK8SPMD 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.Universidade Federal de Minas GeraisCompiladorVetorizacaoSIMDCompiladores (Computadores)ComputaçãoArquitetura de computadorFunction Call Re-vectorizationinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisRubens Emilio Alves Moreirainfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGFernando Magno Quintao PereiraLuis Fabricio Wanderley GoesWagner Meira JuniorLinguagens 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.UFMGORIGINALrubensemilio.pdfapplication/pdf1492302https://repositorio.ufmg.br//bitstreams/b15f3554-cbe9-4751-8b22-0aaaec654658/downloada0a0f40be4408d8b13fb5cc364bd02f7MD51trueAnonymousREADTEXTrubensemilio.pdf.txttext/plain164358https://repositorio.ufmg.br//bitstreams/4cb64b0c-1e1a-4334-9c1a-f8b46d45af18/downloadcbbd56703907ac0bf85afc5dfa5fa53bMD52falseAnonymousREADTHUMBNAILrubensemilio.pdf.jpgrubensemilio.pdf.jpgGenerated Thumbnailimage/jpeg2191https://repositorio.ufmg.br//bitstreams/ca227ce1-7625-4314-8cea-94cb237be689/download6a187b8eaa03e503d72195d4207eb39bMD53falseAnonymousREAD1843/ESBF-ANJQK82025-09-09 15:16:02.456open.accessoai:repositorio.ufmg.br:1843/ESBF-ANJQK8https://repositorio.ufmg.br/Repositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2025-09-09T18:16:02Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false |
| dc.title.none.fl_str_mv |
Function Call Re-vectorization |
| title |
Function Call Re-vectorization |
| spellingShingle |
Function Call Re-vectorization Rubens Emilio Alves Moreira Compiladores (Computadores) Computação Arquitetura de computador Compilador Vetorizacao SIMD |
| title_short |
Function Call Re-vectorization |
| title_full |
Function Call Re-vectorization |
| title_fullStr |
Function Call Re-vectorization |
| title_full_unstemmed |
Function Call Re-vectorization |
| title_sort |
Function Call Re-vectorization |
| author |
Rubens Emilio Alves Moreira |
| author_facet |
Rubens Emilio Alves Moreira |
| author_role |
author |
| dc.contributor.author.fl_str_mv |
Rubens Emilio Alves Moreira |
| dc.subject.por.fl_str_mv |
Compiladores (Computadores) Computação Arquitetura de computador |
| topic |
Compiladores (Computadores) Computação Arquitetura de computador Compilador Vetorizacao SIMD |
| dc.subject.other.none.fl_str_mv |
Compilador Vetorizacao SIMD |
| description |
SPMD 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. |
| publishDate |
2017 |
| dc.date.issued.fl_str_mv |
2017-03-21 |
| dc.date.accessioned.fl_str_mv |
2019-08-10T08:01:23Z 2025-09-09T00:19:14Z |
| dc.date.available.fl_str_mv |
2019-08-10T08:01:23Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/1843/ESBF-ANJQK8 |
| url |
https://hdl.handle.net/1843/ESBF-ANJQK8 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
| publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFMG instname:Universidade Federal de Minas Gerais (UFMG) instacron:UFMG |
| instname_str |
Universidade Federal de Minas Gerais (UFMG) |
| instacron_str |
UFMG |
| institution |
UFMG |
| reponame_str |
Repositório Institucional da UFMG |
| collection |
Repositório Institucional da UFMG |
| bitstream.url.fl_str_mv |
https://repositorio.ufmg.br//bitstreams/b15f3554-cbe9-4751-8b22-0aaaec654658/download https://repositorio.ufmg.br//bitstreams/4cb64b0c-1e1a-4334-9c1a-f8b46d45af18/download https://repositorio.ufmg.br//bitstreams/ca227ce1-7625-4314-8cea-94cb237be689/download |
| bitstream.checksum.fl_str_mv |
a0a0f40be4408d8b13fb5cc364bd02f7 cbbd56703907ac0bf85afc5dfa5fa53b 6a187b8eaa03e503d72195d4207eb39b |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG) |
| repository.mail.fl_str_mv |
repositorio@ufmg.br |
| _version_ |
1862105571225763840 |