Вопрос о GCC[Solved]

Цитатка из вики "..native (GCC >= 4.2 автоматически определяет возможности процессора по /proc/cpuinfo).."
Может кто нибудь объяснить а вчем разница, если вместо native будет стоять тип процессора и наоборот?

,

Если будет стоять тип процессора - оптимизация будет под указанный тип.
Если натив - то компилятор попробует определить тип процессора сам и будет оптимизировать под этот выбранный тип.

native - говорите компилятору

native - говорите компилятору о том, что вы ему доверяете, иначе что нет...

ммм.. а в итоге ?? что

ммм.. а в итоге ?? что лучше(безопасней) выбрать ?

知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"

Если рассмотреть все

Если рассмотреть все варинаты, то безопасней выбрать самому выбрать правильны march, т.к. есть варианты, когда native не работает или работает не правильно, но это отдельные исключения. Так, что в худшем случае, если с native не соберется, пропишите сами.

Примного благодарствую

Примного благодарствую

知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"

_SerEga_ написал(а): если с

_SerEga_ написал(а):
если с native не соберется, пропишите сами.

как показывает практика, все соберется, но вот со скоростью могут быть проблемы и со стабильностью... хотя если у вас не супер-пупер новинка-проц, то пишите native...

тут кто-то когда-то писал команду, как можно посмотреть какие опции оптимизации включены в gcc с текущим CFLAGS (например, в CFLAGS указано -march=native и с помощью этой команды среди всех включенных компилятором команд можно было разглядеть, какой именно march gcc выбрал). нельзя ли повторить и добавить в FAQ?! :) [поиск мне что-то не помог :( ]

.

Цитата:
... разглядеть, какой именно march gcc выбрал

gcc -march=native -Q --help=target

Theli, кстати на Феном2 при native говорит -march=amdfam10 :)

а cat /proc/cpuinfo одного

а cat /proc/cpuinfo одного ядра можно увидеть?

.

чет кроме bogomips'ов и

чет кроме bogomips'ов и частоты разницы со своим Phenom'ом не вижу...
вообще имхо, что для феномов вообще оптимизации нету, т.к. у нас "cpu_family: 16", а не 10 :(
хотя на работу пожаловаться не могу... пересборка ~1000 пакетов за 5 часов (8 если с OOo) очень неплохо =) собираются все пакеты, хотя моя система пересобранная для Intel Core 2 Duo дает серьезные сбои )))

Интересно... И вижу я, среди

Интересно... И вижу я, среди прочего, что на моем core2 quad gcc при -march=native:

  -msse                       		[disabled]
  -msse2                      		[disabled]
  -msse2avx                   		[disabled]
  -msse3                      		[disabled]
  -msse4                      		[disabled]
  -msse4.1                    		[disabled]
  -msse4.2                    		[disabled]
  -msse4a                     		[disabled]
  -msse5                      		[disabled]

В то время как /cat /proc/cpuinfo | grep flags являет

... sse sse2 ... ssse3

Это как же так? Жизнь, выходит, проходит даром!

И вот еще что: cpuinfo, однако, не содержит sse3, хотя ssse3 там указан. Интел в своих документах также говорит, что sse3 на Q6000 серии реализованы.

Потому решено дополнить свои $CFLAGS -mssse3 (что автоматически включит все нижестоящие sse)

Товарищи согласны?

:}

.

ага, а также на Phenom(tm) II X4 выключено:
-m3dnow
-mmmx
-msseХХ

Зато включено
-mno-sse4

Что сие значит?

Странно всё это...

Пробывал менять -march от pentium3 до core2, что ника не отражается на sseX mmx и прочих флагах...

Пойду читать документацию по gcc.

.

Да, не отражается. Вопрос в том, стоит ли их включать руками и почему они выключены..

Для особо одаренных танкистов

Для особо одаренных танкистов gcc -march=native -Q --help=target Выведет параметры командной строки которые будут переданы компилятору!!!! А не включенные оптимизации.

-march=core2 уже включает в себя mmx, sse, sse2 и т.д.

           core2
               Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support.

-march=native приводит к ошибкам если вы используете distcc кластер

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Однако: Цитата: If the -Q

Однако:

Цитата:
If the -Q option appears on the command line before the --help= option, then the descriptive text displayed by --help= is changed. Instead of describing the displayed options, an indication is given as to whether the option is enabled, disabled or set to a specific value (assuming that the compiler knows this at the point where the --help= option is used).

Не говорит ли это как раз о том, что вывод означает именно имеющие эффект -m опции?

Вы как хотите, а я таки не поленюсь и напишу нужные -mssse в свои CFLAGS. Но бенчмарки принципиально делать не стану :}

Боком, но сюда относится вот еще такое наблюдение. Как-то собрал scribus-svn с опцией -msse4.1 (помимо -march=native), на одном core2 где эти инструкции поддерживаются, и перенес на другое core2, где их нет. Запустил -- опа, illegal instruction.

:}

Мы уже задавилась этим

Мы уже задавилась этим вопросом вот ссылка на ответ из рассылки gcc
http://gcc.gnu.org/ml/gcc-help/2009-04/msg00305.html

Процитирую

Цитата:
The output of --help=target just tells you
the status of the various command line options; it doesn't tell you
which architecture will be used.

Перевод звучит приблизительно так:

Цитата:
Команда --help=target только выводит статус различных параметров командной строки; он ничего не говорит об архитектуре которая будет использована.

Так что добавление -mmmx -msse -msse2 -msse3 ни к чему хорошему не приведут :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

а вот если бы из вас был хоть

а вот если бы из вас был хоть один программист, то он бы заметил, что ручками включать sseX глобально глупо, т.к. эти опции прописываются разработчиками в мейках только для тех си-файлов, в которых они нужны ;)
и вообще, там где они реально нужны, есть соответствующие use-флаги ;) яркий пример - mplayer! вы можете не заметить разницу при просмотре фильмов, но зато при кодировании в mencoder результаты могут быть ой какие разные ;)

.

То есть sseX включай/не включай - всё едино?
А если я хочу в понедельник собрать с sse4.1, а во вторник - без sse4.1,
то у меня оба раза соберётся одинаковое, что бы я ни предпринимал?

Это подпись, которую невозможно истолковать неправильно

Theli написал(а): а вот если

Theli написал(а):
а вот если бы из вас был хоть один программист

Тут есть программисты :)

Theli написал(а):
что ручками включать sseX

Не стоит, недооценивать gcc как компилятор - он конечно не так хорош как icc, но все же старается использовать sse где может

Working on Gentoo Linux for Asus P535 and Qtopia :-)

icc годится только для

icc годится только для интела, да и так себе поделка...

Не умеешь пользоваться не

Не умеешь пользоваться не лезь :) Убьет.

А если есть время прочитай :
http://blog.alphagemini.org/2008/03/icc-vs-gcc-43.html
http://multimedia.cx/eggs/icc-vs-gcc-smackdown-round-3/

и подумай хороший ли из тебя программист :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

.

в первом же комментарии некто Anonymous говорит - обратите внимание, что диаграммы вводят вас в заблуждение, может показаться, что icc в два раза лучше. На самом деле тут "430 vs 436". Во втором комментарии автор соглашается, что если бы он выбрал правильный масштаб, то разницу невозможно было бы увидеть.

А другой комментатор мамой клянётся, что если использовать march=core2 то разницы ещё меньше.

Хотелось бы увидеть ещё и GCC 4.4.3, раз уж 4.3 лучше 4.2

Это подпись, которую невозможно истолковать неправильно

oleg_kaa говорил (как я

oleg_kaa говорил (как я понял), для своего проекта выйгрыша от icc можно добиться весьма большого (если оптимизировать код под него). Для systemwide использовать icc конечно можно, но я сомневаюсь, что хотябы 50% соберется.

kaf1 написал(а): oleg_kaa

kaf1 написал(а):
oleg_kaa говорил (как я понял), для своего проекта выйгрыша от icc можно добиться весьма большого (если оптимизировать код под него). Для systemwide использовать icc конечно можно, но я сомневаюсь, что хотябы 50% соберется.

ICC хорош тем что он САМ ОПТИМИЗИРУЕТ код под MMX, SSE, SSE2, ... У нас в фирме его тестировали, думали собирать на нем проект, но к сожалению он платный для коммерческих проектов. А так оставил очень хорошие впечатления о себе :)

kaf1 написал(а):
Для systemwide использовать icc конечно можно, но я сомневаюсь, что хотябы 50% соберется.

Всю он конечно не соберет, а вот собрать с ним архиваторы, ffmpeg, mplayer и другой тяжелый софт даст нехилый плюс ;)
http://www.gentoo-wiki.info/HOWTO_ICC_and_Portage

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): ICC

oleg_kaa написал(а):
ICC хорош тем что он САМ ОПТИМИЗИРУЕТ код под MMX, SSE, SSE2,

никто сам ничего не оптимизирует. Если писать под icc - это быстро (icc особо поддталкивать ненадо), но если скорость не важна (имеется ввиду скорость разработки) - то от gcc можно получить нехудший код.

oleg_kaa написал(а):
к сожалению он платный для коммерческих проектов.

Там на самом деле далеко не астрономические цены, если брать у буржуев.

kaf1 написал(а): никто сам

kaf1 написал(а):
никто сам ничего не оптимизирует.

А я говорю оптимизирует by default :)
http://software.intel.com/ru-ru/blogs/2009/02/16/2000642/

kaf1 написал(а):
Там на самом деле далеко не астрономические цены, если брать у буржуев.

У нас либо компания очень бедная либо очень жадная :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): У нас

oleg_kaa написал(а):
У нас либо компания очень бедная либо очень жадная :)

Скорее всего ни первое ни второе. просто боятся связываться с буржуями

patamooshta

patamooshta написал(а):
Хотелось бы увидеть ещё и GCC 4.4.3, раз уж 4.3 лучше 4.2

Гугл поможет тебе :) Я вставил первые две ссылки.

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): и

oleg_kaa написал(а):
и подумай хороший ли из тебя программист :)

ну да, ну да... вот еслиб в тесте был не Intel C2D Q6600, а мой Phenom или вообще присутствовал тест для еще какого-нибудь процессора, я бы вам поверил и сдался... а пока эта поделка только для интелов годится, она и останется Г, о чем я и писал выше, но, видимо, русский язык вам не родной ;)

P.S. читаете надписи на заборе неизвестных авторов и приводите как аргументы здесь ;) молодец :))))))))))

Theli написал(а): ну да, ну

Theli написал(а):
ну да, ну да... вот еслиб в тесте был не Intel C2D Q6600, а мой Phenom или вообще присутствовал тест для еще какого-нибудь процессора, я бы вам поверил и сдался... а пока эта поделка только для интелов годится, она и останется Г, о чем я и писал выше, но, видимо, русский язык вам не родной ;)

Ну так почему бы не взять и не собрать bzip2 с помощью icc и не протестировать? У меня например все процессоры intel, был бы у меня Phenom протестировал

Theli написал(а):
русский язык вам не родной ;)

Родной язык для меня украинский :)

Theli написал(а):
P.S. читаете надписи на заборе неизвестных авторов и приводите как аргументы здесь ;) молодец :))))))))))

Неизвестные авторы проделали некоторую работу, нарисовали графики, а вы только сказали что ICC гавно :)
И вы думаете после этого что ваши надписи более авторитетны? :-D

Working on Gentoo Linux for Asus P535 and Qtopia :-)

вы действительно не умеете

вы действительно не умеете читать :))) напишу вам в третийраз большими буквами:
ICC ГОДИТСЯ ТОЛЬКО ДЛЯ INTEL!!!
даже вот специально для вас его сейчас собираю и буду тестить на феноме на lzma и mplayer, если те вообще собирутся;) будьте добры напишите желаемые флаги оптимизации для icc ;)
у gcc стандартные CFLAGS="-O2 -march=amdfam10 -pipe"

Theli написал(а): вы

Theli написал(а):
вы действительно не умеете читать :)))

Вы тоже этим страдаете ;) Поэтому, подчеркну еще раз свою мысль:
я не согласен с вашим утверждением что icc поделка так себе

Так же добавлю если бы ICC был такой себе поделкой, то владельцы AMD процессоров не писали кипятком по нему и не выдумывали пачтей http://server01.iiiii.info/patch-AuthenticAMD.html для снятия "защиты"

Working on Gentoo Linux for Asus P535 and Qtopia :-)

а вот если бы Intel была

а вот если бы Intel была достойной компанией, то она не вела б себя как мелкософт игнорируя и монополизируя все вокруг... своей поддержкой только своей продукции она сажает тебя на иглу, заставляя применять только ее процы... например nVidia пришлось в судебном порядке отстаивать право на закупку процессоров Intel Atom без чипсетов Intel и только благодаря ей мы получили нормальные нетбуки на рынке ;) скажу даже больше Intel уже давно не привносит никаких инноваций ;) просто тупо как айфон в мире телефонов - дорого и глупо :)))

и еще такой вопрос родился: вот разработали бы вы какую-нибудь программу в icc. А продавали бы ее потом только тем, у кого машина на процессоре Intel? а если я захочу запустить ваш продукт на VIA или AMD, я должен буду отдать деньги за тормоза? или я должен буду менять сразу парк компьютеров? или может заказать у вас специальную версию, скомпилированную с патчами для AMD?

я возможно даже согласен признать, что Intel могла сделать прекрассную поддержку для своих процов, ведь о них то она должна знать абсолютно все...

к стати, тест отменяется... я собрал icc и настроил портеж на работу с ней, но вот mencoder скомпиленый icc запускаться даже отказался - выпал в сегментэйшн фолт и все :))) так что никакая крутость "сферического коня в вакууме" мне не заменит того, что реально есть и работает на любой архитектуре! ;)

Theli написал(а): а вот если

Theli написал(а):
а вот если бы Intel была достойной компанией, то она не вела б себя как мелкософт игнорируя и монополизируя все вокруг... своей поддержкой только своей продукции она сажает тебя на иглу, заставляя применять только ее процы... например nVidia пришлось в судебном порядке отстаивать право на закупку процессоров Intel Atom без чипсетов Intel и только благодаря ей мы получили нормальные нетбуки на рынке ;) скажу даже больше Intel уже давно не привносит никаких инноваций ;) просто тупо как айфон в мире телефонов - дорого и глупо :)))

Между прочим AMD тоже ничего нового не придумала и сейчас в положении догоняющего. Я не знаю какая компания Intel плохая или хорошая, но компилятор у них отличный! ;)

Theli написал(а):
и еще такой вопрос родился: вот разработали бы вы какую-нибудь программу в icc. А продавали бы ее потом только тем, у кого машина на процессоре Intel? а если я захочу запустить ваш продукт на VIA или AMD, я должен буду отдать деньги за тормоза? или я должен буду менять сразу парк компьютеров? или может заказать у вас специальную версию, скомпилированную с патчами для AMD?

Программы я разрабатываю в среде разработки, ICC просто компилирует код. Программы я не продаю, я продаю свое программисто-часы :)

Theli написал(а):
к стати, тест отменяется... я собрал icc и настроил портеж на работу с ней, но вот mencoder скомпиленый icc запускаться даже отказался - выпал в сегментэйшн фолт и все :))) так что никакая крутость "сферического коня в вакууме" мне не заменит того, что реально есть и работает на любой архитектуре! ;)

Патч наложите :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

.

oleg_kaa написал(а):
Между прочим AMD тоже ничего нового не придумала и сейчас в положении догоняющего.

Сразу хочется вспомнить истории с судебными разбирательствами по поводу заимствования Интелом разработок AMD...

Разговоры о лидерстве и прочих положениях без оглашения учёта (и, естественно, согласнования) системы координат (таблицы приоритетов) смысла не имеют.
Вообще.

ЗЫ: Отдельные альтернативно одарённые индивидуумы с позиций прогресса наезжают на Leitz (ныне Leica Camera AG), но это лишь показывает их урвоень компетенции.

:wq
--
Live free or die

Где у AMD 4 ядерные

Где у AMD 4 ядерные процессоры с аналогом HyperThreading (как бы аналог i7)?

x86_64 - увеличение разрядности регистров не такая уж и большая фича :) У меня вот на amd64 kde глючат :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): Где у

oleg_kaa написал(а):
Где у AMD 4 ядерные процессоры с аналогом HyperThreading (как бы аналог i7)?

а нафига он нужен?! да и гипертрэйдинг появился задолго до i7 ;) вместо вдух реальных ядер, которые делатся на еще пару мнимых, у AMD 4 реальных ядра ;)

oleg_kaa написал(а):
x86_64 - увеличение разрядности регистров не такая уж и большая фича :) У меня вот на amd64 kde глючат :)

видимо у вас Core i7 =)))))

У Core i7 4 ядра которые

А зачем HT нужен, прошу почитать википедию, там про HT написано достаточно что бы понять что он нужен :)

У Core i7 4 ядра которые делятся 2, в общей сумме 8 процессорных потоков. А вам слабо? :)

Нет у меня core 2 duo ;)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): Патч

oleg_kaa написал(а):
Между прочим AMD тоже ничего нового не придумала и сейчас в положении догоняющего

почитайте про x86_64(AMD64) хотя бы ;)

oleg_kaa написал(а):
Патч наложите :)

делать мне больше нечего ;) если бы он был хоть кому-то нужен, то уже был бы в ебилде ;) Вы мне вообще еще Kylix предложите :))))

Ну прям таки мега супер фича!

Ну прям таки мега супер фича! Вот когда AMD сделает новый процессор, с новой архитектурой, которому не нужен будет кулер, который будет без костылей x86

Цитата:
делать мне больше нечего ;) если бы он был хоть кому-то нужен, то уже был бы в ебилде ;) Вы мне вообще еще Kylix предложите :))))

Ну раз начали тестировать, но будьте любезны пойти до конца, или руки не стого места растут? ;)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Топик сваливается в ничто.

Топик сваливается в ничто. Хватит трепаться, а то закрою.

Не грусти, товарищ! Всё хорошо, beautiful good!

Вопрос о GCC[Solved]

Топик уже как второй день нужно закрывать :) Так как "Вопрос о GCC[Solved]"

Мальчики Theli и Anarchist, тема урока "ICC крутой компилятор с автоматической векторизацией", не отвлекаемся :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): Ну раз

oleg_kaa написал(а):
Ну раз начали тестировать, но будьте любезны пойти до конца, или руки не стого места растут? ;)

дык тест закончен! icc его не прошел, как неспособный создать работающий код ;) gcc выиграл без боя =) делать за Intel его работу я не собираюсь принципиально!!!

проверьте, если в флагах есть

проверьте, если в флагах есть 'pni' - то сие суть sse3

так или иначе emerge -e sytem

так или иначе emerge -e sytem (CFLAGS="-O3 -march=prescott -fomit-frame-pointer -pipe") прошло без ошибок..

知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"

ага-ага... -O3 с 4-й версией

ага-ага... -O3 с 4-й версией gcc нестабилен и нерекомендован самими разработчиками...

если быть точне то вроде бы с

если быть точне то вроде бы с версий 4.4 и далее: я на 4.3.4 - полет нормальный, добрался до -e world.....

知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".