Обучение с подкреплением для управления процессом компиляции исходного кода
Студент: Чучин Дмитрий Юрьевич
Научный руководитель: Свидченко Олег Анатольевич
Научные консультанты: Косов Павел Владимирович, Хомутов Никита Юрьевич
Университет ИТМО
Санкт-Петербург, 2024
Определения эффективной последовательности оптимизаций компилятора
Оптимизации позволяют улучшить такие характеристики программы, как время исполнения или размер исполняемого файла
Сложности:
В рамках работы рассматривалась задача оптимизации времени исполнения. Задача решалась для архитектуры x86-64 и инфраструктуры LLVM 10.0.0
Пример оптимизации instcombine для промежуточного представления LLVM
2 / 13
Существующие подходы
1. Kulkarni, Sameer and John Cavazos. (2012)
2. Mammadli, Rahim et al. (2020)
3 / 13
Подход | Не требует запуска программы для применения | Позволяет учесть специфику конкретной программы | Позволяет превзойти O3 на всех тестовых программах | Время компиляции | Дополнительный комментарий |
Готовые последовательности оптимизаций (O2, O3) | Да | Нет | Нет | Небольшое | - |
Итеративная компиляция | Нет (требует десятки запусков 1) | Да | Да | Очень большое | Показывает результаты лучше остальных подходов |
Обучение с учителем (без запуска программы) | Да | Да | - | Среднее | Работ, использующих данный подход, найти не удалось |
Обучение с подкреплением (без запуска программы) | Да | Да | Нет (для существующих моделей 2) | Среднее | Не требует размеченных датасетов, в отличии от обучения с учителем |
Определение порядка оптимизаций как задача обучения с подкреплением
представление IR, история действий, награда
LLVM IR
opt
Агент
применение
оптимизаций
4 / 13
2. Mammadli, Rahim et al. (2020)
Цель и задачи
Цель:
Разработать модель поиска эффективной последовательности оптимизаций компилятора в инфраструктуре LLVM для оптимизации времени исполнения, используя обучение с подкреплением
Задачи:
5 / 13
Архитектура модели. Векторное представление и награда
6 / 13
Архитектура модели. Пространство действий и алгоритм обучения с подкреплением
7 / 13
2. Mammadli, Rahim et al. (2020)
3. Jain, Shalini et al. (2022)
4. Ashouri, Amir H. et al. (2017)
Обучение моделей. Датасет
Датасеты
Данные для обучения и тестирования
8 / 13
Обучение моделей. Сравнение наград
9 / 13
Модель | Jotai тестовый датасет | llvm-test-suite | |
| | | |
Время исполнения | -0.014±0.002 | 0.456±0.013 | -41.2±21.0 |
Количество исполненных инструкций | -0.014±0.002 | 0.452±0.013 | -0.33±0.11 |
Block RThroughput | -0.124±0.004 | 0.463±0.013 | -85.3±47.4 |
Параметры моделей:
Обучение моделей. Сравнение пространств действий
Параметры моделей:
Модель | Jotai тестовый датасет | llvm-test-suite | |
| | | |
POSET-manual | -0.033±0.002 | 0.449±0.012 | -27.6±16.8 |
POSET-odg | -0.011±0.002 | 0.449±0.012 | -26.1±16.8 |
Cbench-inst-min | -0.014±0.002 | 0.452±0.013 | -0.33±0.11 |
MiCOMP | -0.015±0.003 | 0.459±0.014 | -0.138±0.016 |
10 / 13
Выбор лучшей модели
Пространство действий | Векторное представление | Функция стоимости в награде | | | Доля ускоренных программ относительно O3 |
Cbench-inst-min | конкатенация IR2Vec, Autophase и Instcount | количество исполненных инструкций | -0.33±0.11 | 0.652 | 0.242 |
MiCOMP | конкатенация IR2Vec, Autophase и Instcount | количество исполненных инструкций | -0.138±0.016 | 0.465 | 0.258 |
11 / 13
Количество программ
Выбор лучшей модели. Применение для итеративной компиляции
4. Ashouri, Amir H. et al. (2017)
5. Sameer Kulkarni and John Cavazos. (2012)
12 / 13
Модель | Среднее гармоническое ускорения | ||
Cbench | Jotai тестовый датасет | llvm-test-suite | |
Моя модель с пространством действий Cbench-inst-min | 1.017 | 1.034 | 1.018 |
Моя модель с пространством действий MiCOMP | 1.011 | 1.035 | 1.019 |
Результаты из статьи MiCOMP 4 (модель MiCOMP) | 1.038 | - | - |
Результаты из статьи MiCOMP 4 (модель NEAT 5) | 1.016 | - | - |
Результаты
13 / 13
Дополнительные слайды
Репозиторий: https://github.com/capitanFlint129/diplom_experiments
14 / 13
Архитектура модели. Агент
Был реализован DQN с LSTM для учета истории применения действий. Среди алгоритмов обучения с подкреплением в первую очередь был применен DQN поскольку, данный алгоритм использовался в предыдущей аналогичной работе, а сравнение эффективности различных алгоритмов не было первоочередной задачей работы
Преимущества алгоритма для данной задачи:
at - примененная оптимизация
ot - наблюдение (например IR2Vec)
ht - скрытое состояние LSTM
one-hot at-1
ot
LSTM
ht-1
at
Полносвязная сеть
ht
+
+
- конкатенация
ht+1
one-hot at
ot+1
LSTM
+
Полносвязная сеть
Полносвязная сеть
Полносвязная сеть
at+1
15 / 13
Обучение моделей. Сравнение представлений
Параметры моделей:
Модель | Jotai тестовый датасет | llvm-test-suite | |
| | | |
IR2Vec | -0.035±0.002 | 0.420±0.013 | -97.0±48.9 |
Autophase | -0.076±0.003 | 0.451±0.013 | -101.4±50.5 |
IR2Vec + Autophase + Instcount | -0.033±0.002 | 0.449±0.012 | -27.6±16.8 |
16 / 13
Обучение моделей. DQN Loss
Номер эпизода
Loss
17 / 13
Выбор лучшей модели. Применение для итеративной компиляции
2. Ashouri, Amir H. et al. (2017)
4. Sameer Kulkarni and John Cavazos. (2012)
Модель | Среднее гармоническое Среднее гармоническое ускорения на Cbench |
Моя модель с пространством действий Cbench-inst-min | 1.017 |
Моя модель с пространством действий MiCOMP | 1.011 |
Результаты из статьи MiCOMP 2 (модель MiCOMP) | 1.038 |
Результаты из статьи MiCOMP 2 (модель NEAT 4) | 1.016 |
Модель | Jotai тестовый датасет | llvm-test-suite | ||
| Среднее гармоническое ускорения | | Среднее гармоническое ускорения | |
Cbench-inst-min | 0.038±0.001 | 1.034 | 0.022±0.004 | 1.018 |
MiCOMP | 0.039±0.001 | 1.035 | 0.022±0.004 | 1.019 |
18 / 13
Пространство действий Cbench-inst-min
Пример выбора ключевой оптимизации на программе stringsearch2
Индекс оптимизации в последовательности O3
Нормированное количество исполненных инструкций
19 / 13
Обучение моделей
Модель | Jotai тестовый датасет | llvm-test-suite | |
| | | |
POSET-odg | -0.011±0.002 | 0.449±0.012 | -26.1±16.8 |
Cbench-inst-min | -0.014±0.002 | 0.452±0.013 | -0.33±0.11 |
MiCOMP | -0.015±0.003 | 0.459±0.014 | -0.138±0.016 |
Модель | Jotai тестовый датасет | llvm-test-suite | |
| | | |
Время исполнения | -0.014±0.002 | 0.456±0.013 | -41.2±21.0 |
Количество исполненных инструкций | -0.014±0.002 | 0.452±0.013 | -0.33±0.11 |
Сравнение наград основанных на разных функциях стоимости:
Сравнение пространств действий (функция стоимости - количество исполненных инструкций):
20 / 13