ChatPaper.aiChatPaper

Modelos de Linguagem de Grande Escala para Otimização de Compiladores

Large Language Models for Compiler Optimization

September 11, 2023
Autores: Chris Cummins, Volker Seeker, Dejan Grubisic, Mostafa Elhoushi, Youwei Liang, Baptiste Roziere, Jonas Gehring, Fabian Gloeckle, Kim Hazelwood, Gabriel Synnaeve, Hugh Leather
cs.AI

Resumo

Exploramos a aplicação inovadora de Modelos de Linguagem de Grande Escala (LLMs) na otimização de código. Apresentamos um modelo transformer de 7 bilhões de parâmetros treinado do zero para otimizar o código assembly LLVM em relação ao tamanho. O modelo recebe como entrada um assembly não otimizado e gera uma lista de opções de compilação para otimizar o programa da melhor forma. Durante o treinamento, solicitamos que o modelo preveja as contagens de instruções antes e após a otimização, bem como o código otimizado em si. Essas tarefas de aprendizado auxiliar melhoram significativamente o desempenho de otimização do modelo e aprofundam sua compreensão. Avaliamos o modelo em um amplo conjunto de programas de teste. Nossa abordagem alcança uma melhoria de 3,0% na redução das contagens de instruções em comparação com o compilador, superando duas linhas de base state-of-the-art que exigem milhares de compilações. Além disso, o modelo demonstra habilidades surpreendentemente fortes de raciocínio sobre código, gerando código compilável em 91% das vezes e emulando perfeitamente a saída do compilador em 70% das vezes.
English
We explore the novel application of Large Language Models to code optimization. We present a 7B-parameter transformer model trained from scratch to optimize LLVM assembly for code size. The model takes as input unoptimized assembly and outputs a list of compiler options to best optimize the program. Crucially, during training, we ask the model to predict the instruction counts before and after optimization, and the optimized code itself. These auxiliary learning tasks significantly improve the optimization performance of the model and improve the model's depth of understanding. We evaluate on a large suite of test programs. Our approach achieves a 3.0% improvement in reducing instruction counts over the compiler, outperforming two state-of-the-art baselines that require thousands of compilations. Furthermore, the model shows surprisingly strong code reasoning abilities, generating compilable code 91% of the time and perfectly emulating the output of the compiler 70% of the time.
PDF244December 15, 2024