У меня процессор <имярек>. Что подставлять в переменную CFLAGS?
winterheart 29 марта, 2009 - 01:39
Список опробованных и безопасных параметров под любое семейство процессоров можно найти на gentoo-wiki: Safe Cflags.
Если Вы используете свежие версии компилятора GCC (то есть воспользовались правильным stage3 или уже обновились до GCC 4.3.x), то достаточно добавить -march=native
.
Следующая команда покажет, какие опции оптимизации включит -march=native
:
gcc -march=native -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p'
На всякий случай: помните, что чрезмерная оптимизация ведёт к запоюпроблемам!
»
- Для комментирования войдите или зарегистрируйтесь
Если я не могу использовать
Если я не могу использовать native, то все эти опции надо прописать вручную? или -march=pentium-m хватит?
celeron III
Vyvod kommandy pustoy!
Локальный оверлей растёт
Процессор athlon-xp определяется как athlon 4.
Это синонимы
Это синонимы:
Working on Gentoo Linux for Asus P535 and Qtopia :-)
Использую свежую версию GCC
Использую свежую версию GCC (4.6.3).
При выполнении комманды: gcc -march=native -E -v - &1 | sed -n 's/.* -v - //p'
получил вот столько всего:
-march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=corei7-avx
но систему устанавливал и настраивал с -march=core2 (где-то прочитал совет и поставил именно такой флажок)
gcc -march=core2 -E -v - &1 | sed -n 's/.* -v - //p'
выводит только: core2 (так понимаю, что через это много фичь процессора просто не используются...)
Поставил native. Как теперь правильно обновить систему?
Не обновить, а пересобрать
Не обновить, а пересобрать :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
.
И обратная сторона.
Когда стоит задача не оптимизация под конкретную железяку, а сборки generic stage4 под наличный парк оборудования, не обременённого свойством идентичности.
Простоты первого варианта (который от профиля не зависит) не получится.
Для amd64 —
-march=x86-64
Для x86 —
-march=i686
(для совместимости со старыми процессорами возможноi586
или дажеi486
,i386
— совсем вряд ли).За прочие профили (начиная наверное с arm) прошу высказаться тех, кто с ними работает.
:wq
--
Live free or die