Use este identificador para citar ou linkar para este item:
http://repositorio.uem.br:8080/jspui/handle/1/8420
Autor(es): | Zanella, André Felipe |
Orientador: | Silva, Anderson Faustino da |
Título: | Aprendizagem profunda na predição de tamanho de código |
Banca: | Costa, Yandre Maldonado e Gomes da |
Banca: | Foleis, Juliano Henrique |
Palavras-chave: | Redes neurais profundas - Ciência da computação;Compilação preditiva;Benchmarks sintéticos |
Data do documento: | 2022 |
Editor: | Universidade Estadual de Maringá |
Citação: | ZANELLA, André Felipe. Aprendizagem profunda na predição de tamanho de código. 2022. 87 f. Dissertação (mestrado em Ciência da Computação)-Universidade Estadual de Maringá, 2022, Maringá, PR. |
Abstract: | RESUMO: Mecanismos de compilação preditiva realizam predições utilizando conhecimento prévio a respeito do espaço de otimizações. Com o avanço no desenvolvimento de Redes Neurais Profundas, especialistas começaram a derivar heurísticas de compilação com esta abordagem de aprendizagem. No entanto, um dos principais problemas que impedem Redes Neurais Profundas se tornarem predominantes para otimização de compiladores é a dificuldade de criação de conjuntos de dados de alta qualidade. Esforços recentes da comunidade científica para mitigar este problema resultaram em ferramentas para síntese automática de benchmarks, capazes de gerar milhares ou milhões de programas sintéticos. Neste trabalho, buscamos avaliar o desempenho de benchmarks AnghaBench, uma proeminente suíte de programas C sintetizados para compilação preditiva, como conjunto de treinamento para diversos modelos de Redes Neurais Recorrentes. Especifi- camente, propomos uma heurística de compilação para predição de tamanho de código. Prever tamanho de código por sequências de otimização é uma importante questão, pois, a compilação e tempo de carregamento de dados pode ser tornar uma tarefa impraticável. As heurísticas foram criadas a partir de quatro arquiteturas recorrentes: LSTM, GRU e seus modelos bidirecionais, e duas representações de código distintas foram avaliadas, um vetor de contagem de instruções LLVM e uma representação utilizando embeddings inst2vec. Os benchmarks AnghaBench foram utilizados em união com benchmarks reais de diversos domínios de programas, nominalmente, à suíte de testes LLVM e às suítes de programas embarcados, Mibench e Coremark-Pro. Além disso, criamos um conjunto de benchmarks utilizado para teste formado por funções compiláveis, e apresentamos 10 novas sequências de otimização para redução de código. Os resultados indicam que AnghaBench pode ser eficiente para predição de benchmarks formados por uma única definição de função, um valor MAPE (do inglês Mean absolute percentage error) de 19, 25% foi obtido na predição de funções extraídas da suíte Coremark-Pro. Além disso, em alguns casos, AnghaBench resultou em incrementos na acurácia quando utilizando em conjunto com benchmarks reais. Também discutimos a melhor representação de programas, dentre as avaliadas, para cada domínio de benchmarks, com inst2vec se mostrando mais adequado para kernels pequenos, e vetor de contagem para benchmarks mais robustos. ABSTRACT: Predictive compilation mechanisms perform predictions using prior knowledge about the broad optimization space. With the recent advances on Deep Neural Networks, researchers started to derive optimization heuristics using machine learning techniques. Notwithstanding, one of the biggest issues that slows down the adoption of those techni- ques on mainstream compilers is the difficulty in creating high quality datasets. Recent efforts from the scientific community to tackle this problem resulted in the development of benchmarks synthesizers that are able to generate millions of valid code samples. In this work, we seek to evaluate the performance of AnghaBench benchmarks, a prominent suite of synthesized C programs for predictive compilation, as a training set for several Recurrent Neural Network models. Specifically, we propose a compilation heuristic for code size prediction. Estimate code size by optimization sequences is an important matter because, compiling and loading data can be an impractical task. The heuristics were created from distinct recurrent neural architectures: LSTM, GRU and their respective bidirectional models, and evaluated in two distinct code representations, the first being a vector of LLVM instruction counters and an inst2vec code embedding. AnghaBench benchmarks were used in union with real benchmarks from several domains of programs: the LLVM test suite and the embedded benchmarks suites, Mibench and Coremark-Pro. In addition, we create a set of benchmarks for testing formed by compilable functions, and a set of 10 optimization sequences for code size reduction. The results shows that, AnghaBench can be an efficient dataset for predicting benchmarks composed by a single function definition, with a MAPE (Mean absolute percentage error) value of 19.25%, obtained by predicting functions extracted from the Coremark-Pro suite. Furthermore, in some cases, AnghaBench produced an increment in accuracy when used in combination with real benchmarks. Besides, we provide a discussion on the best representation of programs, among the evaluated, for each benchmark domain, with inst2vec proving to be the best for small kernels, and the count vector for more robust benchmarks |
Descrição: | Orientador: Prof. Dr. Anderson Faustino da Silva Dissertação (mestrado em Ciência da Computação)-Universidade Estadual de Maringá, 2022 |
URI: | http://repositorio.uem.br:8080/jspui/handle/1/8420 |
Aparece nas coleções: | 2.4 Dissertação - Ciências de Tecnologia (CTC) |
Arquivos associados a este item:
Arquivo | Tamanho | Formato | |
---|---|---|---|
Andre Felipe Zanella_2022.pdf | 1,49 MB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.