Патч, состоящий из одной строки, создан инженером Intel Лили Цуй (Lili Cui) и заключается в корректировке параметров генерации машинного кода.
Суть нововведения состоит в увеличении стоимости ошибки предсказания ветвлений, в случае включения алгоритмов оптимизации. Современные вычислительные ядра обладают значительно более глубокими конвейерами обработки инструкций. В таких условиях неверное предсказание условного перехода приводит к масштабным простоям конвейера и потерям производительности. Повышение штрафных коэффициентов заставляет компилятор применять более консервативные стратегии оптимизации, избегая лишнего простоя процессора. Опытным путём удалось выяснить, что стоимость требуется увеличить на 3 пункта для оптимальных результатов.
Тестирование патча в бенчмарке SPEC CPU 2017 в сценарии 544.nab_r продемонстрировало выдающиеся результаты. На серверных процессорах Intel Granite Rapids прирост быстродействия составил 12,7%. Проверка на решениях AMD архитектуры Zen 5 зафиксировала увеличение производительности на 12,1%. Примечательно, что аналогичного эффекта невозможно достичь при использовании специализированных флагов компиляции, таких как march=native, поскольку изменение затрагивает исключительно универсальные профили оптимизации.
Данное улучшение особенно востребовано в средах, где программное обеспечение компилируется без привязки к конкретному поколению процессоров, что является стандартной практикой для большинства дистрибутивов Linux. Патч уже интегрирован в основную ветку репозитория GCC и войдет в состав стабильного релиза GCC 17.
