gcc -march "native" или <мой проц> (что эффективнее?)

Модератор: Модераторы разделов

Аватара пользователя
Eronex
Сообщения: 106
ОС: Ubuntu

gcc -march "native" или <мой проц>

Сообщение Eronex »

Например возьмём Intel и AMD процессоры с одинаковым набором инструкций, но выполнять один и тот же код они будут по-разному, потому что внутренняя архитектура у них разная.
Так вот native получается оптимизирует по набору инструкций? А конкретное указание модели процессора не только по набору, но и по способу реализации кода данной моделью? Или я ошибаюсь?
Подскажите пожалуйста, что всё-таки лучше использовать?
Спасибо сказали:
Kris
Сообщения: 146
Статус: Безумный гентушник

Re: gcc -march "native" или <мой проц>

Сообщение Kris »

If you have an Intel or AMD CPU and are using >=sys-devel/gcc-4.2.3, using -march=native is recommended
Спасибо сказали:
Аватара пользователя
Eronex
Сообщения: 106
ОС: Ubuntu

Re: gcc -march "native" или <мой проц>

Сообщение Eronex »

Kris писал(а):
28.06.2009 10:44
If you have an Intel or AMD CPU and are using >=sys-devel/gcc-4.2.3, using -march=native is recommended

Рекомендед -- это конечно хорошо, но где подробности?
Спасибо сказали:
Kris
Сообщения: 146
Статус: Безумный гентушник

Re: gcc -march "native" или <мой проц>

Сообщение Kris »

gcc -march=native -Q --help=target
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: gcc -march "native" или <мой проц>

Сообщение DaemonTux »

eronex писал(а):
28.06.2009 13:45
Kris писал(а):
28.06.2009 10:44
If you have an Intel or AMD CPU and are using >=sys-devel/gcc-4.2.3, using -march=native is recommended

Рекомендед -- это конечно хорошо, но где подробности?

GCC пытается сам выставить нужные флаги оптимезации взависимости от текущего процесора.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Fireal
Сообщения: 26
ОС: Gentoo

Re: gcc -march "native" или <мой проц>

Сообщение Fireal »

DaemonTux писал(а):
29.06.2009 17:02
eronex писал(а):
28.06.2009 13:45
Kris писал(а):
28.06.2009 10:44
If you have an Intel or AMD CPU and are using >=sys-devel/gcc-4.2.3, using -march=native is recommended

Рекомендед -- это конечно хорошо, но где подробности?

GCC пытается сам выставить нужные флаги оптимезации взависимости от текущего процесора.
Размер кэша учитывается, типа --param l1-cache-size=128?
Спасибо сказали:
Аватара пользователя
Eronex
Сообщения: 106
ОС: Ubuntu

Re: gcc -march "native" или <мой проц>

Сообщение Eronex »

fireal писал(а):
03.09.2009 13:49
Размер кэша учитывается, типа --param l1-cache-size=128?

Хочу ответ на этот вопрос.

Тема ^UP^
Спасибо сказали:
Аватара пользователя
taaroa
Сообщения: 1319

Re: gcc -march "native" или <мой проц>

Сообщение taaroa »

Eronex писал(а):
09.05.2011 14:24
fireal писал(а):
03.09.2009 13:49
Размер кэша учитывается, типа --param l1-cache-size=128?

Хочу ответ на этот вопрос.

Тема ^UP^

gcc $CFLAGS -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p'

-D_FORTIFY_SOURCE=2 -march=amdfam10 -mcx16 -msahf -mpopcnt -mabm --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=amdfam10 -fno-strict-overflow -fPIE -fstack-protector-all (это если просто указать CFLAGS="-march=native" gcc-4.6.0)

-D_FORTIFY_SOURCE=2 -march=amdfam10 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 -mtune=amdfam10 -fPIE -fno-strict-overflow
(оно же при gcc-4.3.5)

-D_FORTIFY_SOURCE=2 -march=amdfam10 -mcx16 -msahf -mpopcnt --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=amdfam10 -fno-strict-overflow -fPIE -fstack-protector-all (4.4.5)

lscpu покажет размеры cache(s) и thread(s) per core.
:wq
Спасибо сказали:
Аватара пользователя
Eronex
Сообщения: 106
ОС: Ubuntu

Re: gcc -march "native" или <мой проц>

Сообщение Eronex »

taaroa писал(а):
09.05.2011 14:56

Благодарю! Чрезвычайно полезная информация! :)
Спасибо сказали: