Function Call Re-vectorization

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Rubens Emilio Alves Moreira
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
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