Semiring optimization: dynamic elision of expressions with identity and absorbing elements

Bibliographic Details
Main Author: Guilherme Vieira Leobas
Publication Date: 2019
Format: Master thesis
Language: eng
Source: Repositório Institucional da UFMG
Download full: http://hdl.handle.net/1843/72182
https://orcid.org/0000-0001-7626-5281
Summary: Essa dissertação descreve uma técnica de otimização que elimina ocorrências dinâmicas de expressões no formato a = a ⊕ b ⊗ c. A operação ⊕ deve admitir um elemento identidade z, de forma que a ⊕ z = z ⊕ a = a. Além disso, z deve ser o elemento anulador da operação ⊗, de forma que b ⊗ z = z ⊗ c = z. Semi anéis onde ⊕ é a operação de adição e ⊗ é o operador de multiplicação cumprem esse contrato. Esse padrão é muito comum em benchmarks de alta performance – seu representante canônico é a operação de adição e multiplicação a = a + b × c. No entanto, várias outras expressões envolvendo operações aritméticas e lógicas podem ser agrupadas dentro da álgebra necessária. Nós mostramos que a eliminação em tempo de execução de tais atribuições pode ser implementada de uma maneira segura do ponto de vista de performance utilizando perfilamento in-loco. A eliminação dinâmica de expressões redundantes envolvendo identidade e elemento anulador em 35 programas da suíte de testes do LLVM é responsável por um ganho de velocidade de 1.19x (tempo total otimizado sobre tempo total não otimizado) quando comparado com o clang -O3. Quando aplicado a toda a suíte de testes (259 programas), a otimização leva a um ganho de 1.025x. Quando adicionadas ao clang, a otimização de semi anel aproxima aquele sistema de TACO, um compilador especializado de álgebra tensorial.
id UFMG_eb8d1ac4557a752475e41e15593b509e
oai_identifier_str oai:repositorio.ufmg.br:1843/72182
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling Semiring optimization: dynamic elision of expressions with identity and absorbing elementsOtimização de semi-anel: elisão dinâmica de expressões com identidade e elementos absorventesCompilersCode optimizationSemiringCode generationComputação – TesesOtimização – TesesCompiladores (Computadores) - TesesAnéis semilocais – TesesEssa dissertação descreve uma técnica de otimização que elimina ocorrências dinâmicas de expressões no formato a = a ⊕ b ⊗ c. A operação ⊕ deve admitir um elemento identidade z, de forma que a ⊕ z = z ⊕ a = a. Além disso, z deve ser o elemento anulador da operação ⊗, de forma que b ⊗ z = z ⊗ c = z. Semi anéis onde ⊕ é a operação de adição e ⊗ é o operador de multiplicação cumprem esse contrato. Esse padrão é muito comum em benchmarks de alta performance – seu representante canônico é a operação de adição e multiplicação a = a + b × c. No entanto, várias outras expressões envolvendo operações aritméticas e lógicas podem ser agrupadas dentro da álgebra necessária. Nós mostramos que a eliminação em tempo de execução de tais atribuições pode ser implementada de uma maneira segura do ponto de vista de performance utilizando perfilamento in-loco. A eliminação dinâmica de expressões redundantes envolvendo identidade e elemento anulador em 35 programas da suíte de testes do LLVM é responsável por um ganho de velocidade de 1.19x (tempo total otimizado sobre tempo total não otimizado) quando comparado com o clang -O3. Quando aplicado a toda a suíte de testes (259 programas), a otimização leva a um ganho de 1.025x. Quando adicionadas ao clang, a otimização de semi anel aproxima aquele sistema de TACO, um compilador especializado de álgebra tensorial.This dissertation describes a compiler optimization to eliminates dynamic occurrences of expressions in the format a ← a ⊕ b ⊗ c. The operation ⊕ must admit an identity element z, such that a ⊕ z = a. Also, z must be the absorbing element of ⊗, such that b ⊗ z = z ⊗ c = z. Semirings where ⊕ is the additive operator and ⊗ is the multiplicative operator meet this contract. This pattern is common in high-performance benchmarks— its canonical representative being the multiply-add operation a ← a + b × c. However, several other expressions involving arithmetic and logic operations satisfy the required algebra. We show that the runtime elimination of such assignments can be implemented in a performance-safe way via online profiling. The elimination of dynamic redundancies involving identity and absorbing elements in 35 programs of the LLVM test suite that present semiring patterns brings an average speedup of 1.19x (total optimized time over total unoptimized time) on top of clang -O3. When projected onto the entire test suite (259 programs) the optimization leads to a speedup of 1.025x. Once added onto clang, semiring optimizations approximates it to TACO, a specialized tensor compiler.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorUniversidade Federal de Minas GeraisBrasilICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃOPrograma de Pós-Graduação em Ciência da ComputaçãoUFMGFernando Magno Quintão Pereirahttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4762727Z6&tokenCaptchar=03AFcWeA4ZLM0nIM4eM1w8FT6lHkDRWZCpXXaw3GORYxY15w5JnDWqVnEX3KgtakjscHwoAQlw9CP3GUGAXdXoo1y0jiMW7Lv23D8C5yygvr5qY-XZOtyQguMvG5P-FWbDMJje7_HHM1vki619kCsyMsPy0VSchZ200lT3hIG6byOlo5ziWGQhY6bo2Yk6by28wntLnnTbVaIFwxFEkKRTRwIk_6kNn3dfOonnQCeyzkExlhPJuH_zjYmcGLijosN9WYH9X-v8Zq_z3WggxIn-YIb4ZoNNMmVGuoPgxHR8sSiur5n2dA5wNIsFbiYtnTifuWU_lqkHs8dL5RxISV88hAbRs6CyuLbSbNysTvZ3Fi7yl0tLYfB56SL_ktGwPU-Si1qVs2K8wuf4uaJlJHrlbAACAq2RZNnQecnk8Sd-RvXoRkKufnYoHmmi8bFoM6t67Fdw_mdF4gnjl8klvi0VrxMr3RKXmEeSnrTdnY__n8cJlSb35q_kIG0o_lN_2Mh9RyQpVGs5Blm9esqRAQzVTkTSpO8tBa1tzEEpaJ4maeIOru_VHxQ3jHTv8N827x6VAYgoOb7f2cnZlSBXbBb6d45MdYUCvoUqtwomHDiObbKUkiAs2XpHqa1VNS6htlCr5WOxKSqn9OcaViJCdyY7J-bIG8KeZo-LufuosuDEWur-Yywk-lqVtozvXou4R4CVB5dQ2O6IstPGFfat2I0RF-Omu0ijtAZMe8fWJcLWyI0yvr47x_ZwiLAEdson BorinGeorge Luiz Medeiros TeodoroGuilherme Vieira Leobas2024-07-31T16:38:11Z2024-07-31T16:38:11Z2019-10-03info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/1843/72182https://orcid.org/0000-0001-7626-5281enginfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMG2024-08-01T12:16:02Zoai:repositorio.ufmg.br:1843/72182Repositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2024-08-01T12:16:02Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.none.fl_str_mv Semiring optimization: dynamic elision of expressions with identity and absorbing elements
Otimização de semi-anel: elisão dinâmica de expressões com identidade e elementos absorventes
title Semiring optimization: dynamic elision of expressions with identity and absorbing elements
spellingShingle Semiring optimization: dynamic elision of expressions with identity and absorbing elements
Guilherme Vieira Leobas
Compilers
Code optimization
Semiring
Code generation
Computação – Teses
Otimização – Teses
Compiladores (Computadores) - Teses
Anéis semilocais – Teses
title_short Semiring optimization: dynamic elision of expressions with identity and absorbing elements
title_full Semiring optimization: dynamic elision of expressions with identity and absorbing elements
title_fullStr Semiring optimization: dynamic elision of expressions with identity and absorbing elements
title_full_unstemmed Semiring optimization: dynamic elision of expressions with identity and absorbing elements
title_sort Semiring optimization: dynamic elision of expressions with identity and absorbing elements
author Guilherme Vieira Leobas
author_facet Guilherme Vieira Leobas
author_role author
dc.contributor.none.fl_str_mv Fernando Magno Quintão Pereira
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4762727Z6&tokenCaptchar=03AFcWeA4ZLM0nIM4eM1w8FT6lHkDRWZCpXXaw3GORYxY15w5JnDWqVnEX3KgtakjscHwoAQlw9CP3GUGAXdXoo1y0jiMW7Lv23D8C5yygvr5qY-XZOtyQguMvG5P-FWbDMJje7_HHM1vki619kCsyMsPy0VSchZ200lT3hIG6byOlo5ziWGQhY6bo2Yk6by28wntLnnTbVaIFwxFEkKRTRwIk_6kNn3dfOonnQCeyzkExlhPJuH_zjYmcGLijosN9WYH9X-v8Zq_z3WggxIn-YIb4ZoNNMmVGuoPgxHR8sSiur5n2dA5wNIsFbiYtnTifuWU_lqkHs8dL5RxISV88hAbRs6CyuLbSbNysTvZ3Fi7yl0tLYfB56SL_ktGwPU-Si1qVs2K8wuf4uaJlJHrlbAACAq2RZNnQecnk8Sd-RvXoRkKufnYoHmmi8bFoM6t67Fdw_mdF4gnjl8klvi0VrxMr3RKXmEeSnrTdnY__n8cJlSb35q_kIG0o_lN_2Mh9RyQpVGs5Blm9esqRAQzVTkTSpO8tBa1tzEEpaJ4maeIOru_VHxQ3jHTv8N827x6VAYgoOb7f2cnZlSBXbBb6d45MdYUCvoUqtwomHDiObbKUkiAs2XpHqa1VNS6htlCr5WOxKSqn9OcaViJCdyY7J-bIG8KeZo-LufuosuDEWur-Yywk-lqVtozvXou4R4CVB5dQ2O6IstPGFfat2I0RF-Omu0ijtAZMe8fWJcLWyI0yvr47x_ZwiLA
Edson Borin
George Luiz Medeiros Teodoro
dc.contributor.author.fl_str_mv Guilherme Vieira Leobas
dc.subject.por.fl_str_mv Compilers
Code optimization
Semiring
Code generation
Computação – Teses
Otimização – Teses
Compiladores (Computadores) - Teses
Anéis semilocais – Teses
topic Compilers
Code optimization
Semiring
Code generation
Computação – Teses
Otimização – Teses
Compiladores (Computadores) - Teses
Anéis semilocais – Teses
description Essa dissertação descreve uma técnica de otimização que elimina ocorrências dinâmicas de expressões no formato a = a ⊕ b ⊗ c. A operação ⊕ deve admitir um elemento identidade z, de forma que a ⊕ z = z ⊕ a = a. Além disso, z deve ser o elemento anulador da operação ⊗, de forma que b ⊗ z = z ⊗ c = z. Semi anéis onde ⊕ é a operação de adição e ⊗ é o operador de multiplicação cumprem esse contrato. Esse padrão é muito comum em benchmarks de alta performance – seu representante canônico é a operação de adição e multiplicação a = a + b × c. No entanto, várias outras expressões envolvendo operações aritméticas e lógicas podem ser agrupadas dentro da álgebra necessária. Nós mostramos que a eliminação em tempo de execução de tais atribuições pode ser implementada de uma maneira segura do ponto de vista de performance utilizando perfilamento in-loco. A eliminação dinâmica de expressões redundantes envolvendo identidade e elemento anulador em 35 programas da suíte de testes do LLVM é responsável por um ganho de velocidade de 1.19x (tempo total otimizado sobre tempo total não otimizado) quando comparado com o clang -O3. Quando aplicado a toda a suíte de testes (259 programas), a otimização leva a um ganho de 1.025x. Quando adicionadas ao clang, a otimização de semi anel aproxima aquele sistema de TACO, um compilador especializado de álgebra tensorial.
publishDate 2019
dc.date.none.fl_str_mv 2019-10-03
2024-07-31T16:38:11Z
2024-07-31T16:38:11Z
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 http://hdl.handle.net/1843/72182
https://orcid.org/0000-0001-7626-5281
url http://hdl.handle.net/1843/72182
https://orcid.org/0000-0001-7626-5281
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.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Minas Gerais
Brasil
ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Programa de Pós-Graduação em Ciência da Computação
UFMG
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
Brasil
ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Programa de Pós-Graduação em Ciência da Computação
UFMG
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
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_ 1835272256767393792