Вопрос о GCC[Solved]
draft3r 18 января, 2010 - 13:32
Цитатка из вики "..native (GCC >= 4.2 автоматически определяет возможности процессора по /proc/cpuinfo).."
Может кто нибудь объяснить а вчем разница, если вместо native будет стоять тип процессора и наоборот?
»
,
Если будет стоять тип процессора - оптимизация будет под указанный тип.
Если натив - то компилятор попробует определить тип процессора сам и будет оптимизировать под этот выбранный тип.
native - говорите компилятору
native - говорите компилятору о том, что вы ему доверяете, иначе что нет...
ммм.. а в итоге ?? что
ммм.. а в итоге ?? что лучше(безопасней) выбрать ?
知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"
Если рассмотреть все
Если рассмотреть все варинаты, то безопасней выбрать самому выбрать правильны march, т.к. есть варианты, когда native не работает или работает не правильно, но это отдельные исключения. Так, что в худшем случае, если с native не соберется, пропишите сами.
Примного благодарствую
Примного благодарствую
知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"
_SerEga_ написал(а): если с
как показывает практика, все соберется, но вот со скоростью могут быть проблемы и со стабильностью... хотя если у вас не супер-пупер новинка-проц, то пишите native...
тут кто-то когда-то писал команду, как можно посмотреть какие опции оптимизации включены в gcc с текущим CFLAGS (например, в CFLAGS указано -march=native и с помощью этой команды среди всех включенных компилятором команд можно было разглядеть, какой именно march gcc выбрал). нельзя ли повторить и добавить в FAQ?! :) [поиск мне что-то не помог :( ]
.
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:
В то время как
/cat /proc/cpuinfo | grep flags
являетЭто как же так? Жизнь, выходит, проходит даром!
И вот еще что: 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 и т.д.
-march=native приводит к ошибкам если вы используете distcc кластер
Working on Gentoo Linux for Asus P535 and Qtopia :-)
Однако: Цитата: If the -Q
Однако:
Не говорит ли это как раз о том, что вывод означает именно имеющие эффект -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
Процитирую
Перевод звучит приблизительно так:
Так что добавление -mmmx -msse -msse2 -msse3 ни к чему хорошему не приведут :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
а вот если бы из вас был хоть
а вот если бы из вас был хоть один программист, то он бы заметил, что ручками включать sseX глобально глупо, т.к. эти опции прописываются разработчиками в мейках только для тех си-файлов, в которых они нужны ;)
и вообще, там где они реально нужны, есть соответствующие use-флаги ;) яркий пример - mplayer! вы можете не заметить разницу при просмотре фильмов, но зато при кодировании в mencoder результаты могут быть ой какие разные ;)
.
То есть sseX включай/не включай - всё едино?
А если я хочу в понедельник собрать с sse4.1, а во вторник - без sse4.1,
то у меня оба раза соберётся одинаковое, что бы я ни предпринимал?
Это подпись, которую невозможно истолковать неправильно
Theli написал(а): а вот если
Тут есть программисты :)
Не стоит, недооценивать 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
ICC хорош тем что он САМ ОПТИМИЗИРУЕТ код под MMX, SSE, SSE2, ... У нас в фирме его тестировали, думали собирать на нем проект, но к сожалению он платный для коммерческих проектов. А так оставил очень хорошие впечатления о себе :)
Всю он конечно не соберет, а вот собрать с ним архиваторы, ffmpeg, mplayer и другой тяжелый софт даст нехилый плюс ;)
http://www.gentoo-wiki.info/HOWTO_ICC_and_Portage
Working on Gentoo Linux for Asus P535 and Qtopia :-)
oleg_kaa написал(а): ICC
никто сам ничего не оптимизирует. Если писать под icc - это быстро (icc особо поддталкивать ненадо), но если скорость не важна (имеется ввиду скорость разработки) - то от gcc можно получить нехудший код.
Там на самом деле далеко не астрономические цены, если брать у буржуев.
kaf1 написал(а): никто сам
А я говорю оптимизирует by default :)
http://software.intel.com/ru-ru/blogs/2009/02/16/2000642/
У нас либо компания очень бедная либо очень жадная :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
oleg_kaa написал(а): У нас
Скорее всего ни первое ни второе. просто боятся связываться с буржуями
patamooshta
Гугл поможет тебе :) Я вставил первые две ссылки.
Working on Gentoo Linux for Asus P535 and Qtopia :-)
oleg_kaa написал(а): и
ну да, ну да... вот еслиб в тесте был не Intel C2D Q6600, а мой Phenom или вообще присутствовал тест для еще какого-нибудь процессора, я бы вам поверил и сдался... а пока эта поделка только для интелов годится, она и останется Г, о чем я и писал выше, но, видимо, русский язык вам не родной ;)
P.S. читаете надписи на заборе неизвестных авторов и приводите как аргументы здесь ;) молодец :))))))))))
Theli написал(а): ну да, ну
Ну так почему бы не взять и не собрать bzip2 с помощью icc и не протестировать? У меня например все процессоры intel, был бы у меня Phenom протестировал
Родной язык для меня украинский :)
Неизвестные авторы проделали некоторую работу, нарисовали графики, а вы только сказали что ICC гавно :)
И вы думаете после этого что ваши надписи более авторитетны? :-D
Working on Gentoo Linux for Asus P535 and Qtopia :-)
вы действительно не умеете
вы действительно не умеете читать :))) напишу вам в третийраз большими буквами:
ICC ГОДИТСЯ ТОЛЬКО ДЛЯ INTEL!!!
даже вот специально для вас его сейчас собираю и буду тестить на феноме на lzma и mplayer, если те вообще собирутся;) будьте добры напишите желаемые флаги оптимизации для icc ;)
у gcc стандартные CFLAGS="-O2 -march=amdfam10 -pipe"
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 написал(а): а вот если
Между прочим AMD тоже ничего нового не придумала и сейчас в положении догоняющего. Я не знаю какая компания Intel плохая или хорошая, но компилятор у них отличный! ;)
Программы я разрабатываю в среде разработки, ICC просто компилирует код. Программы я не продаю, я продаю свое программисто-часы :)
Патч наложите :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
.
Сразу хочется вспомнить истории с судебными разбирательствами по поводу заимствования Интелом разработок 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 написал(а): Где у
а нафига он нужен?! да и гипертрэйдинг появился задолго до i7 ;) вместо вдух реальных ядер, которые делатся на еще пару мнимых, у AMD 4 реальных ядра ;)
видимо у вас 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 написал(а): Патч
почитайте про x86_64(AMD64) хотя бы ;)
делать мне больше нечего ;) если бы он был хоть кому-то нужен, то уже был бы в ебилде ;) Вы мне вообще еще Kylix предложите :))))
Ну прям таки мега супер фича!
Ну прям таки мега супер фича! Вот когда AMD сделает новый процессор, с новой архитектурой, которому не нужен будет кулер, который будет без костылей x86
Ну раз начали тестировать, но будьте любезны пойти до конца, или руки не стого места растут? ;)
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 написал(а): Ну раз
дык тест закончен! 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.....
知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"