Auxílio à pesquisa 17/02111-5 - Inteligência computacional, Aprendizado computacional - BV FAPESP
Processo: 17/02111-5
Pesquisador responsável: Ricardo Luis de Azevedo da Rocha
Beneficiário: Ricardo Luis de Azevedo da Rocha
Assunto(s): Inteligência computacional Aprendizado computacional Compiladores paralelizantes
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)