ChatPaper.aiChatPaper

Modelos de Lenguaje a Gran Escala para la Optimización 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

Resumen

Exploramos la novedosa aplicación de Modelos de Lenguaje de Gran Escala (LLM) a la optimización de código. Presentamos un modelo transformador de 7 mil millones de parámetros entrenado desde cero para optimizar el tamaño del código en ensamblador LLVM. El modelo toma como entrada ensamblador no optimizado y genera una lista de opciones del compilador para optimizar mejor el programa. Es crucial destacar que, durante el entrenamiento, solicitamos al modelo que prediga los conteos de instrucciones antes y después de la optimización, así como el código optimizado en sí. Estas tareas de aprendizaje auxiliar mejoran significativamente el rendimiento de optimización del modelo y profundizan su comprensión. Evaluamos nuestro enfoque en un amplio conjunto de programas de prueba. Nuestra propuesta logra una mejora del 3.0% en la reducción de conteos de instrucciones en comparación con el compilador, superando a dos líneas base de última generación que requieren miles de compilaciones. Además, el modelo muestra capacidades sorprendentemente sólidas de razonamiento sobre el código, generando código compilable el 91% de las veces y emulando perfectamente la salida del compilador el 70% de las veces.
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.
PDF234December 15, 2024