ChatPaper.aiChatPaper

Grands modèles de langage pour l'optimisation de compilateurs

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

Résumé

Nous explorons une nouvelle application des modèles de langage de grande taille à l'optimisation de code. Nous présentons un modèle transformeur de 7 milliards de paramètres, entraîné à partir de zéro pour optimiser l'assembleur LLVM en termes de taille de code. Le modèle prend en entrée un assembleur non optimisé et produit une liste d'options de compilation pour optimiser au mieux le programme. Pendant l'entraînement, nous demandons au modèle de prédire le nombre d'instructions avant et après optimisation, ainsi que le code optimisé lui-même. Ces tâches d'apprentissage auxiliaires améliorent significativement les performances d'optimisation du modèle et approfondissent sa compréhension. Nous évaluons notre approche sur un large ensemble de programmes de test. Notre méthode obtient une amélioration de 3,0 % dans la réduction du nombre d'instructions par rapport au compilateur, surpassant deux méthodes de référence de pointe qui nécessitent des milliers de compilations. De plus, le modèle démontre des capacités de raisonnement sur le code étonnamment solides, générant du code compilable 91 % du temps et reproduisant parfaitement la sortie du compilateur 70 % du temps.
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