МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ФИЗИКО - ТЕХНИЧЕСКИЙ ИНСТИТУТ (государственный университет) Решение задачи восстановления профильной.

Презентация:



Advertisements
Похожие презентации
Программный разрыв зависимостей между операциями обращения в память в двоичном оптимизирующем компиляторе Магистерская диссертация студента 212 группы.
Advertisements

Программный разрыв зависимостей между операциями обращения в память в двоичном оптимизирующем компиляторе Магистерская диссертация студента 212 группы.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Оптимизация управляющего графа программ, имеющих избыточные условные вычисления Выполнил: Степнов Денис, 816 гр. Научный руководитель: Бучнев А.Ю. Выпускная.
Развитие механизмов долговременного хранения двоично- транслированных кодов Научный руководитель: Ермолович Александр Владленович Московский Физико-Технический.
Развитие технологии динамического сравнения трасс Научный руководитель: Ермолович Александр Владленович Московский Физико-Технический Институт Роман А.
Развитие технологии динамического сравнения трасс Научный руководитель: Ермолович Александр Владленович Московский Физико-Технический Институт Роман А.
Методы тестирования Впрактике тестирования используются методы: статический, детерминированный, стохастический ивреальном масштабе времени. Статическое.
Задачи связности и реберной двусвязности на динамически меняющихся графах Автор: Сергей Копелиович, студент 545 группы Научный руководитель: старший преподаватель.
1 Лабораторная работа 3 МНОГОРАЗРЯДНЫЕ ДВОИЧНЫЕ СУММАТОРЫ. СЛОЖЕНИЕ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ В ОБРАТНОМ И ДОПОЛНИТЕЛЬНОМ КОДАХ Министерство образования.
Unit-тестирование и метрики покрытия кода тестами Сергей Андреев, JetBrains 29 февраля 2012.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
Жизненный цикл программного обеспечения Подготовил студент 1 курса Лось Павел.
Автоматическая векторизация выражений оптимизирующим компилятором Ермолицкий Александр, 112 группа Научный руководитель: Шлыков Сергей Московский Физико-Технический.
Вычисление времени запрета обработки внешних прерываний ОС с использованием ячейки МПВ-М Магистерская диссертация Студент: Севастинович Павел, 515 гр.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ.
Оптимизация алгоритмов сигнальной обработки для процессоров с архитектуройЭльбрус Московский Физико-Технический Институт Автор : Павлов Антон Научный руководитель.
Научные руководители: доктор технических наук Селянинов Михаил Юрьевич, старший преподаватель Позняков Андрей Михайлович Выделение контуров при цифровой.
Разработка устройства поиска и слежения за частотой несущего колебания в составе демодулятора небалансного ФМн-4 сигнала. Студент группы ЭР Аверьянов.
Разработка методов машинного обучения на основе генетических алгоритмов и эволюционной стратегии для построения управляющих конечных автоматов Второй этап.
Транксрипт:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ФИЗИКО - ТЕХНИЧЕСКИЙ ИНСТИТУТ (государственный университет) Решение задачи восстановления профильной информации по неполным исходным данным в динамическом двоичном компиляторе. Магистерская диссертация студента 112 группы ФРТК Загребина Андрея Александровича Научный руководитель: старший научный сотрудник Гимпельсон Вадим Дмитриевич Москва, 2007

Цели работы и её применение. Исследование роли профильной информации (ПИ) в двоичной оптимизирующей трансляции. Разработка и реализация алгоритмов Использование готовых алгоритмов По результатам анализа: Некорректная ПИ Наилучшая возможная ПИ для оптимизации Проделанный анализ: Исследование проблем, связанных с ПИ. Корректность ПИ и её поддержание.

С = 10 C = 350 Счётчики узлов графа управления Счётчики дуг графа управления Вероятности дуг графа управления Профильная информация. C = 3 С = 10 C = 10 С = 7 P = 0.7 С = 3 P = 0.3 С = 10 P = 1 С = 7 P = 0.02 С = 343 P = 0.98 С = 3 P = 1 Двоичный оптимизирующий компилятор Граф управления Характеризует число исполнения кода. Применяется в качестве эвристик оптимизаций.

Intel x86 код Профильный Граф (ПГ) Двоичный оптимизирующий компилятор Выделение региона. Формирование профильной информации. Наборщик регионов Построение Узел с С пороговым Регион..... oper 1 oper 2 branch..... oper 3 oper oper 1 oper 2 branch oper 3 oper 4 oper 1 oper 2 branch oper 3 oper 4 C = 0 C ++ C = 1 C порога Узел региона Инкрементация при интерпретации Узел региона Узел региона Узел региона

Корректность профильной информации 1. С узла = Σ С входной дуги 2. Σ P выходной дуги = 1 3. С дуги = С узла предшественника × P дуги Формальная корректность где С – счётчик, Р – вероятность. Дополнительное требование: 4. Счётчики должны быть наиболее близки к их оригинальным значениям (насколько это возможно) C узла P дуги С дуги P дуги

После оптимизаций из-за удаления дуг c P 0 Возникновение некорректности. При изъятии ПИ из ПГ для узлов на границах другого региона Из-за прерываний N + 1 N произошло прерывание P=0,1 90 P=0 P=1 P=0,9 P= Регион Регион Регион исполнение не продолжается Вход 7 5 Профильный граф: Граф управления:

Метод классического восстановление ПИ. Пропогация профиля Старт 10 Узел 1 N1 P=0.7 Узел 2 N2 P=0.3 Стоп N3 P=0.1 P=1 N1 = 0.7 * * N1, N2 = 0.3 * 10, N3 = 0.1 * N1 + 1 * N2. Предусловия Корректность CFG Σ P выходной дуги = 1 Однозначность и разрешимость системы уравнений P=0.9 Старт 10 Узел 1 70 P=0.7 Узел 2 3 P=0.3 Стоп 10 P=0.1 С = 7 P=1 P=0.9 С = 63 Граф управления:

10 N P=1 P=0 0 N P=1 P=0 N = 10 + N 0 = 10 !!! N = 0 + N 0 = 0 !!! обнуление Неразрешимость Неоднозначность P=1 Оптимизации не будут применяться Корректор профиля Задача коррекции – преобразовать ПИ так, чтобы после неё и пропогации обеспечить формальную корректность ПИ и по возможности пункт 4. Система уравнений Случаи неприменимости классической пропогации. До пропогации после набора региона После пропогации P=1 P=0.1 P= P=1 P=0.9 P=0.1 Имеет смысл применить оптимизации Оптимизации не будут применяться Обнуление счётчиков

Коррекция входного счётчика цикла Для самых внешних циклов Для вложенных циклов Вход в регион Старт Другой цикл Вероятные пути от входов в регион Вход во внешний цикл Другой вложенный цикл Вероятные пути от входов во внешний цикл Узлы вне циклов Тело самого внешнего цикла Тело внешнего цикла Тело вложенного цикла Выход из внешнего цикла С 0С = 0

Методы коррекции для решения проблем с системой уравнений при пропогации Метод выкалывания узла во время пропогации 10 N P=1 P=0 N = 10 + N N = = = 110 !!! Недостаток: не полная корректность ПИ после пропогации в отличии от метода малого возмущения ПИ Метод малого возмущения профильной информации 10 N P=1 P=0 P= P=1 P= Выход из региона Недостаток: Неоптимальное выполнение требования 4 Корректности ПИ Выход из региона

Коррекция выходных из цикла дуг Этап 1 Поиск дуг для коррекции. P = 0, C узла-предшественника 0 Этап 2 Непосредственная коррекция. Коррекция одной дуги: С входной в цикл < C предшественника дуги P дуги = 0 P дуги = C входной в цикл C узла предшественника дуги Коррекция всех дуг: С входной в цикл < ΣC предшественника дуги P дуги = 0 P дуги = C входной в цикл Σ C узла предшественника дуги Этап 3 Метод малого возмущения Вход 1 в цикл P=0 Выход 2 из цикла Тело цикла С 0 С входной в цикл 0

Уменьшение времени работы результирующего кода после применения пропогации и коррекции профиля по сравнению с применением пропогации, c методом выкалывание узла. На пакете тестов SPEC 95 6 % на тесте 129.compress и 2 % на тесте 102.swim 3-й регион теста compress и 3-й регион теста swim Обнуление счётчиков после пропогации из-за нулевых счётчиков входов в регион после набора 4й регион теста compress Уменьшение порядка счётчиков в цикла на несколько порядков после пропогации из-за отсутствия вероятного выхода из цикла после набора региона

На пакете тестов SPEC 2000 G среднее = 1,12 Уменьшение времени работы результирующего кода после применения пропогации и коррекции профиля по сравнению с применением пропогации, с методом выкалывание узла.

Спасибо за внимание.