adblock check

Простое исправление в компиляторе GCC может ускорить современные процессоры на 12%

Разработчики проекта внедрили минимальное изменение в код компилятора, обеспечившее существенный прирост производительности для процессоров AMD и Intel
Обложка: ИИ Trashbox.ru

Патч, состоящий из одной строки, создан инженером Intel Лили Цуй (Lili Cui) и заключается в корректировке параметров генерации машинного кода.

Суть нововведения состоит в увеличении стоимости ошибки предсказания ветвлений, в случае включения алгоритмов оптимизации. Современные вычислительные ядра обладают значительно более глубокими конвейерами обработки инструкций. В таких условиях неверное предсказание условного перехода приводит к масштабным простоям конвейера и потерям производительности. Повышение штрафных коэффициентов заставляет компилятор применять более консервативные стратегии оптимизации, избегая лишнего простоя процессора. Опытным путём удалось выяснить, что стоимость требуется увеличить на 3 пункта для оптимальных результатов.

Простое исправление в компиляторе GCC может ускорить современные процессоры на 12%

Тестирование патча в бенчмарке SPEC CPU 2017 в сценарии 544.nab_r продемонстрировало выдающиеся результаты. На серверных процессорах Intel Granite Rapids прирост быстродействия составил 12,7%. Проверка на решениях AMD архитектуры Zen 5 зафиксировала увеличение производительности на 12,1%. Примечательно, что аналогичного эффекта невозможно достичь при использовании специализированных флагов компиляции, таких как march=native, поскольку изменение затрагивает исключительно универсальные профили оптимизации.

Данное улучшение особенно востребовано в средах, где программное обеспечение компилируется без привязки к конкретному поколению процессоров, что является стандартной практикой для большинства дистрибутивов Linux. Патч уже интегрирован в основную ветку репозитория GCC и войдет в состав стабильного релиза GCC 17.

Источник

Limows
@Limows
Автор
Линуксоид, техно-ретро-блоггер со стажем
Консольщик
Компьютеры Компьютеры
20,4K участников
Вступить
Linux Linux
9,7K участников
Вступить
Комментариев пока нет
Оставьте комментарий...
Оставьте комментарий...