ChatPaper.aiChatPaper

Grote Taalmodellen voor Compileroptimalisatie

Large Language Models for Compiler Optimization

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

Samenvatting

We onderzoeken de nieuwe toepassing van Large Language Models voor code-optimalisatie. We presenteren een transformer-model met 7B parameters dat vanaf nul is getraind om LLVM-assembly te optimaliseren voor codegrootte. Het model neemt niet-geoptimaliseerde assembly als invoer en produceert een lijst van compileropties om het programma optimaal te optimaliseren. Cruciaal is dat we tijdens de training het model vragen om het aantal instructies voor en na optimalisatie te voorspellen, evenals de geoptimaliseerde code zelf. Deze aanvullende leertaken verbeteren de optimalisatieprestaties van het model aanzienlijk en vergroten de diepte van het begrip van het model. We evalueren het model op een grote reeks testprogramma's. Onze aanpak behaalt een verbetering van 3,0% in het verminderen van het aantal instructies ten opzichte van de compiler, wat beter is dan twee state-of-the-art baseline-methoden die duizenden compilaties vereisen. Bovendien toont het model verrassend sterke code-redeneervaardigheden, waarbij het in 91% van de gevallen compileerbare code genereert en in 70% van de gevallen de uitvoer van de compiler perfect nabootst.
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