Обратная связь, созданная компилятором для больших языковых моделей
Compiler generated feedback for Large Language Models
March 18, 2024
Авторы: Dejan Grubisic, Chris Cummins, Volker Seeker, Hugh Leather
cs.AI
Аннотация
Мы представляем новую парадигму в оптимизации компилятора, основанную на больших языковых моделях с обратной связью компилятора для оптимизации размера кода LLVM. Модель принимает неоптимизированный LLVM IR на входе и генерирует оптимизированный IR, лучшие проходы оптимизации и количество инструкций как неоптимизированного, так и оптимизированного IR. Затем мы компилируем входные данные с сгенерированными проходами оптимизации и оцениваем, является ли предсказанное количество инструкций правильным, сгенерированный IR компилируем и соответствует ли скомпилированный код. Мы предоставляем эту обратную связь обратно LLM и даем ему еще один шанс для оптимизации кода. Этот подход добавляет дополнительное улучшение на 0.53% по сравнению с -Oz к исходной модели. Несмотря на то, что добавление большего количества информации с обратной связью кажется интуитивным, простые методы выборки достигают гораздо более высокой производительности при наличии 10 или более образцов.
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.Summary
AI-Generated Summary