Busca avançada
Ano de início
Entree

Uso de aprendizagem de máquina para melhorar decisões tomadas por um compilador

Processo: 17/02111-5
Linha de fomento:Auxílio à Pesquisa - Regular
Vigência: 01 de julho de 2017 - 30 de junho de 2019
Área do conhecimento:Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação
Pesquisador responsável:Ricardo Luis de Azevedo da Rocha
Beneficiário:Ricardo Luis de Azevedo da Rocha
Instituição-sede: Escola Politécnica (EP). Universidade de São Paulo (USP). São Paulo , SP, Brasil
Assunto(s):Inteligência computacional  Aprendizado computacional  Compiladores paralelizantes 

Resumo

Projetar transformações de código para compiladores ainda é uma arte em que não é possível obter desempenho semelhante aos resultados obtidos por seres humanos. Esta proposta de pesquisa tem por objetivo investigar o uso de aprendizagem de máquina para construir compiladores que geram código mais efetivo. A proposta é aplicar aprendizado supervisionado e, posteriormente, não-supervisionado.O objetivo é o desenvolvimento de um método automático para auto-ajuste de parâmetros em um compilador avançado. A adaptatividade em compilação já está presente nos métodos atuais que empregam aprendizado supervisionado. Um dos objetivos deste projeto é melhorar as transformações de código em compiladores, uma área que conta com esforços de pesquisa relativamente recentes.Como ponto de partida para este projeto a proposta é utilizar o framework desenvolvido no Compiler Design and Optimization Laboratory, o grupo de pesquisa conduzido pelo Prof. Dr. José Nelson Amaral na University of Alberta. O framework, chamado Perfil Combinado (Combined Profiling), é voltado principalmente a ahead-of-time compilation. O uso de Perfil Combinado é indicado para qualquer transformação de código que utilize realimentação. O projeto iniciará com um estudo de caso da transformação inlining pois essa transformação pode ter um impacto significativo no desempenho de um programa e tem o potencial de exibir sensibilidade aos dados de entrada do programa.Espera-se que ao final novos métodos e frameworks sejam gerados para permitir o ajuste automático de parâmetros de compilação ahead-of-time. Os experimentos existentes utilizam a infraestrutura de compilação disponível como software livre com código aberto chamada Low-Level Virtual Machine (LLVM) e a linguagem C/C++ em ahead-of-time compilation.Outra questão relevante é a definição das plataformas de hardware para os experimentos. Utilizar a infra-estrutura existente para isso não seria suficiente, porque novas arquiteturas estão em desenvolvimento e é necessário formular experimentos para elas. Por isso a proposta contempla aquisição de máquinas com arquiteturas avançadas e extremamente recentes, baseadas em Intel MIC. (AU)