Оптимизировать математическую библиотеку (libm)
Кто-нибудь пытался скомпилировать glibc
с -march=corei7
чтобы увидеть, есть ли улучшение производительности по сравнению с версией, которая поставляется по умолчанию с любым дистрибутивом Linux x68_64? GCC составлен с -march=i686
, Я думаю (не уверен), что математическая библиотека также составлена таким же образом. Кто-нибудь может это подтвердить?
1 ответ
Большинство дистрибутивов Linux для x86 компилируются с использованием только инструкций i686, но с просьбой запланировать их для более поздних процессоров. Я действительно не следил за последующими событиями.
Некоторое время назад разные версии системных библиотек в соответствии с процессорной линейкой были распространены, но различия в производительности вскоре были признаны слишком малыми для стоимости. А машины стали более равномерными по производительности.
Всегда нужно помнить одну вещь: современные машины связаны с памятью. То есть сегодня доступ к памяти занимает в несколько сотен раз больше времени, чем инструкция, и разрыв увеличивается. Не говоря уже о том, что эта машина (старый ноутбук, который был топ-оф-лайн около 2 лет назад) имеет 4 ядра (8 потоков), все они сражаются за получение данных / инструкций из памяти. Заставить код работать немного быстрее, поэтому процессор может дольше ждать оперативной памяти, что не очень продуктивно.