Retour généré par le compilateur pour les modèles de langage à grande échelle
Compiler generated feedback for Large Language Models
March 18, 2024
papers.authors: Dejan Grubisic, Chris Cummins, Volker Seeker, Hugh Leather
cs.AI
papers.abstract
Nous introduisons un nouveau paradigme dans l'optimisation de compilateurs, alimenté par des modèles de langage de grande taille (LLM) avec rétroaction du compilateur pour optimiser la taille du code en assembleur LLVM. Le modèle prend en entrée un IR LLVM non optimisé et produit un IR optimisé, les meilleures passes d'optimisation, ainsi que les comptes d'instructions des IR non optimisé et optimisé. Ensuite, nous compilons l'entrée avec les passes d'optimisation générées et évaluons si le compte d'instructions prédit est correct, si l'IR généré est compilable et correspond au code compilé. Nous renvoyons cette rétroaction au LLM et lui donnons une autre chance d'optimiser le code. Cette approche apporte une amélioration supplémentaire de 0,53 % par rapport à -Oz au modèle original. Bien que l'ajout de plus d'informations via la rétroaction semble intuitif, des techniques d'échantillonnage simples atteignent des performances bien supérieures avec 10 échantillons ou plus.
English
We introduce a novel paradigm in compiler optimization powered by Large
Language Models with compiler feedback to optimize the code size of LLVM
assembly. The model takes unoptimized LLVM IR as input and produces optimized
IR, the best optimization passes, and instruction counts of both unoptimized
and optimized IRs. Then we compile the input with generated optimization passes
and evaluate if the predicted instruction count is correct, generated IR is
compilable, and corresponds to compiled code. We provide this feedback back to
LLM and give it another chance to optimize code. This approach adds an extra
0.53% improvement over -Oz to the original model. Even though, adding more
information with feedback seems intuitive, simple sampling techniques achieve
much higher performance given 10 or more samples.