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

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ФИЗИКО - ТЕХНИЧЕСКИЙ ИНСТИТУТ
(государственный университет)
Решение задачи восстановления профильной информации по неполным
исходным данным в динамическом двоичном компиляторе.
Магистерская диссертация студента 112 группы ФРТК
Загребина Андрея Александровича
Научный руководитель:
старший научный сотрудник
Гимпельсон Вадим Дмитриевич
Москва, 2007
Цели работы и её применение.
Проделанный анализ:
 Исследование роли профильной информации (ПИ)
в двоичной оптимизирующей трансляции.
 Исследование проблем, связанных с ПИ.
 Корректность ПИ и её поддержание.
По результатам анализа:
 Разработка и реализация алгоритмов
Некорректная ПИ
 Использование готовых алгоритмов
Наилучшая возможная
ПИ для оптимизации
Профильная информация.
Граф управления
Характеризует число исполнения кода.
Применяется в качестве эвристик оптимизаций.
С = 10
 Счётчики узлов графа управления
С = 10
P=1
 Счётчики дуг графа управления
 Вероятности дуг графа управления
С = 10
С=7
P = 0.7
Двоичный
оптимизирующий
компилятор
С=3
P = 0.3
C = 350
С = 343
P = 0.98
С=7
P = 0.02
C = 10
C=3
С=3
P=1
Выделение региона. Формирование профильной информации.
Узел с
Спороговым
Построение
Профильный
Граф (ПГ)
Intel
x86 код
.....
oper 1
oper 2
branch
.....
oper 3
oper 4
.....
C = 0 oper 1
oper 2
branch
C=0
Узел
региона
Узел
региона
C=1
C ≥ порога
C ++
oper 3
oper 4
Двоичный
оптимизирующий
компилятор
Наборщик
регионов
oper 1 C = 1
oper 2
branch
C=0
Регион
oper 3
oper 4
Инкрементация при
интерпретации
C=1
Узел
региона
Узел
региона
Корректность профильной информации
Формальная корректность
1. Сузла
2. Σ
= Σ Свходной дуги
Сдуги
Pдуги
Pвыходной дуги = 1
3. Сдуги
= Сузла предшественника × Pдуги
где С – счётчик, Р – вероятность.
Дополнительное требование:
4. Счётчики должны быть наиболее близки
к их оригинальным значениям
(насколько это возможно)
Cузла
Pдуги
Сдуги
Возникновение некорректности.
 При изъятии ПИ из ПГ для узлов на границах другого региона
Профильный граф:
5
15
Регион 1
10
4
9
10
14
7
5
5
10
N
4
4
2
8
2
 После оптимизаций из-за удаления дуг c P ≠ 0
Граф управления:
10
P=1
произошло
прерывание
исполнение
не продолжается
0
1
4
7
Профильный граф:
0
4
0
0
1
5
 Из-за прерываний
5
4
8
N+1
Регион 1
0
5
8
Регион 2
Вход
4
15
5
1
Вход
100
P=0,1
P=0,9
90
P=0
P=1
Метод классического восстановление ПИ.
Пропогация профиля
Граф управления:
Старт
10
P=0.9
Старт
10
P=0.7
P=0.3
Узел 1
N1
Узел 2
N2
P=0.1
P=1
Стоп
N3
N1 = 0.7 * 10 + 0.9 * N1,
N2 = 0.3 * 10,
N3 = 0.1 * N1 + 1 * N2.
P=0.9
С = 63
P=0.7
P=0.3
Узел 1
70
Узел 2
3
P=0.1
С = 7 Стоп
10
Предусловия
 Корректность CFG
 Σ Pвыходной дуги = 1
 Однозначность
и
разрешимость
системы уравнений
P=1
Случаи неприменимости классической пропогации.
Обнуление счётчиков
Система уравнений
После пропогации
До пропогации
после набора региона
0
 Неразрешимость  Неоднозначность
0
P=1
P=0.9
P=1
100
Имеет смысл
применить
оптимизации
P=1
N
P=0.1
0
P=1
0
P=0.9
P=0.1
10
P=0
Оптимизации
не будут
применяться
N
P=1
P=0
N = 10 + N
N=0+N
0 = 10 !!!
0 = 0 !!!
обнуление
Корректор профиля
Задача коррекции – преобразовать ПИ так,
чтобы после неё и пропогации обеспечить
формальную корректность ПИ
и по возможности пункт 4.
P=1
Оптимизации
не будут
применяться
Коррекция входного счётчика цикла
Для вложенных циклов
Для самых внешних циклов
Вход во
внешний цикл
Старт
Вход
в регион
Вероятные
пути от входов
в регион
Узлы вне
циклов
Тело
самого
внешнего
цикла
С=0
Другой
цикл
С≠0
Вероятные
пути от входов
во внешний
цикл
Тело
внешнего
цикла
Другой
вложенный
цикл
Тело
вложенного
цикла
Выход
из внешнего
цикла
Методы коррекции для решения проблем с системой уравнений при пропогации
Метод выкалывания узла
во время пропогации
Метод малого возмущения
профильной информации
10
10
P=1
P=1
N
10
P=1
P=1
N
9990
P=0.999
P=1
10000
P=0
N = 10 + N
N = 100
100 = 10 + 100
P=0
Выход из
региона
P=0.001 10
Выход из
региона
100 = 110 !!!
Недостаток:
не полная корректность ПИ
после пропогации в отличии
от метода малого возмущения ПИ
Недостаток:
Неоптимальное выполнение
требования 4 Корректности ПИ
Коррекция выходных из цикла дуг
Этап 1
Поиск дуг для коррекции.
Этап 2
Непосредственная коррекция.
P = 0, Cузла-предшественника ≠ 0
 Коррекция одной дуги:
Свходной в цикл < Cпредшественника дуги
Свходной в цикл ≠ 0
Pдуги = 0
Вход 1
в цикл
Pдуги =
Тело
цикла
 Коррекция всех дуг:
Cвходной в цикл
Cузла предшественника дуги
Свходной в цикл < ΣCпредшественника дуги
Выход 2
из цикла
С≠0
P=0
Pдуги = 0
Pдуги =
Этап 3
Метод малого возмущения
Cвходной в цикл
Σ Cузла предшественника дуги
Уменьшение времени работы результирующего кода
после применения пропогации и коррекции профиля
по сравнению с применением пропогации,
c методом выкалывание узла.
На пакете тестов SPEC 95
6 % на тесте 129.compress
и
2 % на тесте 102.swim
3-й регион теста compress и
3-й регион теста swim
Обнуление счётчиков после
пропогации из-за нулевых
счётчиков входов в регион
после набора
4й регион теста compress
Уменьшение порядка счётчиков
в цикла на несколько порядков
после пропогации из-за отсутствия
вероятного выхода из цикла
после набора региона
Уменьшение времени работы результирующего кода
после применения пропогации и коррекции профиля
по сравнению с применением пропогации,
с методом выкалывание узла.
На пакете тестов SPEC 2000
Gсреднее = 1,12
180%
170%
1,64
1,57
160%
150%
1,44
140%
1,34
130%
100%
1,25
1,23
120%
110%
1,32
1,10
1,09
1,00
1,01
1,10
1,01 1,00 1,00
1,00 1,02 1,01 1,00
1,04
1,00 1,00 1,00 1,02
1,00
1,00
90%
80%
1
16 64.g
8.w
z
up ip
wi
s
17
1.s e
w
17
2.m im
17 grid
3.a
pp
17 lu
5.v
17 pr
6
17 .gcc
7.m
e
17
8.g sa
alg
17 el
9.
18 art
18 1.m
3.e
c
qu f
a
18
6.c ke
r
18
7.f afty
ac
18 erec
8.a
mm
18
9.l p
19 uca
s
1.f
m
19
a
7.p 3d
a
20
0.s rser
ixt
ra
25 ck
2
25
3.p .eon
erl
b
25 mk
25 4.gap
5.v
o
25 rtex
6.b
30 zip2
0.t
w
30 olf
1.a
ps
i
70%
Спасибо за внимание.
Download