Однострочное изменение в GCC привело к ускорению на 12% в одном тесте и замедлению на 14% в другом
Инженер из компании Intel внёс в набор компиляторов GCC однострочное изменение, увеличивающее вес неверного предсказания ветвления на процессорах x86. Изменение позволило повысить производительность генерируемого кода при прохождении теста 544.nab_r на 12.7% при включении в оптимизаций «-O2 -mtune=graniterapids» для CPU Intel Granite Rapids/Xeon 6 и на 12.1% при включении в оптимизаций «-O2 -mtune=znver5» на CPU AMD Zen5. Изменение веса с «COSTS_N_INSNS (2)» до «COSTS_N_INSNS (2) + 3» увеличивает значимость ошибки предсказания c 2 до 5 условных инструкций, что лучше отражает особенности конвейеров обработки команд (pipeline) в современных CPU, в которых ошибки предсказания ветвления более затратны. Изменение веса приводит к форсированию преобразования … Читать далее Однострочное изменение в GCC привело к ускорению на 12% в одном тесте и замедлению на 14% в другом
