Autotuning LLVM Optimization Passes for Matrix Multiplication in Rust

Resumo


O framework de compiladores LLVM transforma sua Representação Intermediária (IR) para otimizar código. Essas transformações são controladas por passes que interferem nas métricas, como o tempo de execução. A seleção de passes para melhorar o tempo de execução de um programa é difícil e requer conhecimento especializado. Os métodos de autotuning podem automatizar partes desse processo e ajudar a entender os espaços de busca subjacentes. Este artigo descreve o trabalho em andamento, mostrando que os passes do LLVM podem afetar o tempo de execução de um algoritmo de multiplicação de matrizes em Rust e planeja futuros experimentos de autotuning para seleção de passes.

Palavras-chave: Autotuning, LLVM, Rust, Passes de otimização

Referências

Code and data on GitHub. https://github.com/emanuellima1/matrix-multiply-test.
Prasanna Balaprakash, Stefan M Wild, and Paul D Hovland. Can search algorithms save large-scale automatic performance tuning? Procedia Computer Science, 4:2136–2145, 2011.

Sergi Blanco-Cuaresma and Emeline Bolmont. What can the programming language Rust do for astrophysics? Proceedings of the International Astronomical Union, 12(S325):341–344, 2016.

Pedro Bruel, Marcos Amaris, and Alfredo Goldman. Autotuning CUDA compiler parameters for heterogeneous applications using the OpenTuner framework. Concurrency and Computation: Practice and Experience, 29(22):e3973, 2017

Pedro Bruel, Steven Quinito Masnada, Brice Videau, Arnaud Legrand, Jean-Marc Vin-cent, and Alfredo Goldman. Autotuning under tight budget constraints: A transparent design of experiments approach. In The 19th Annual IEEE/ACM International Symposium in Cluster, Cloud, and Grid Computing (CCGrid 2019). IEEE/ACM, 2019.

Chris Lattner and Vikram Adve. LLVM: A compilation framework for lifelong program analysis & transformation. In International Symposium on Code Generation and Optimization, 2004. CGO 2004., pages 75–86. IEEE, 2004.

Juneyoung Lee, Chung-Kil Hur, Ralf Jung, Zhengyang Liu, John Regehr, and Nuno PLopes. Reconciling high-level optimizations and low-level code in LLVM. Proceedings of the ACM on Programming Languages, 2(OOPSLA):1–28, 2018.

Amit Levy, Bradford Campbell, Branden Ghena, Pat Pannuto, Prabal Dutta, and Philip Levis. The case for writing a kernel in Rust. In Proceedings of the 8th Asia-PacificWorkshop on Systems, pages 1–7, 2017

Nicholas D Matsakis and Felix S Klock. The Rust language. ACM SIGAda Ada Letters,34(3):103–104, 2014.
Publicado
19/08/2020
DE SOUSA, Emanuel Lima; BRUEL, Pedro; GOLDMAN, Alfredo. Autotuning LLVM Optimization Passes for Matrix Multiplication in Rust. In: ESCOLA REGIONAL DE ALTO DESEMPENHO DE SÃO PAULO (ERAD-SP), 11. , 2020, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 34-37. DOI: https://doi.org/10.5753/eradsp.2020.16880.

Artigos mais lidos do(s) mesmo(s) autor(es)

1 2 3 > >>