Semiring optimization: dynamic elision of expressions with identity and absorbing elements
| Main Author: | |
|---|---|
| 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 |