В-третьих, алгоритм планирования был ускорен по сравнению с базовым. Из основных улучшений, приведших к уменьшению времени работы алгоритма, можно перечислить следующие:
По результатам тестирования усовершенствованного алгоритма планирования на платформе Intel Itanium было получено среднее ускорение в 3-4% на пакете тестов SPEC CPU FP 2000 (для разного набора базовых опций получено разное ускорение), а на отдельных тестах – до 10%. Часть результатов представлена в таблице 1. Мелким шрифтом выделен тест, который работает некорректно с текущей реализацией поддержки условного выполнения.
База | Сел | Сел +Усл |
Сел +Зав |
Сел+Зав +Усл |
|
168.wupwise | 553 | -2,35% | -2,35% | 1,27% | 1,45% |
171.swim | 754 | 1,46% | 4,91% | 0,93% | 5,04% |
172.mgrid | 574 | 3,66% | 3,83% | 7,49% | 8,01% |
173.applu | 531 | 3,95% | 3,95% | 3,77% | 4,33% |
177.mesa | 774 | 1,42% | 1,42% | 2,58% | 1,42% |
178.galgel | 856 | 2,45% | 2,22% | 3,50% | 3,50% |
179.art | 2025 | 1,14% | 6,17% | 1,23% | 6,22% |
183.equake | 509 | 8,64% | 8,64% | 6,88% | 7,07% |
187.facerec | 959 | -0,31% | 0,52% | 0,00% | 0,42% |
188.ammp | 739 | 3,79% | 4,19% | 3,79% | 4,19% |
189.lucas | 898 | 0,33% | -0,33% | -0,11% | 0,00% |
191.fma3d | 549 | -1,28% | -1,28% | 0,55% | 0,00% |
200.sixtrack | 325 | 0,00% | 1,23% | 8,92% | 8,92% |
301.apsi | 538 | 1,30% | 2,04% | 4,65% | 5,02% |
SPEC FP Geo Mean |
687,7963 | 1,70% | 2,47% | 3,21% | 3,93% |
Таблица 1. Результаты тестов SPEC FP для планировщика команд.
Исходные коды реализованного алгоритма планирования команд и конвейеризации циклов был включен в специальную ветвь компилятора GCC, доступную с официального сайта разработчиков. Кроме того, по результатам настройки алгоритм планирования был включен в основную ветвь разработки компилятора GCC, как планировщик по умолчанию для платформы Itanium, и будет доступен в следующем релизе компилятора версии 4.4.0.
Мы продолжаем работы над улучшением алгоритма, в первую очередь – над добавлением поддержки полного графа зависимостей по данным, что позволит как ускорить сам алгоритм, так и реализовать более эффективные эвристики для этапа выбора наилучшей команды. Также будут вестись работы над настройкой реализованного алгоритма на другие архитектуры, в частности, IBM Power6.