(решено) Флаги оптимизации GCC для AMD fam 10

Кто пробовал выставлять агрессивные флаги оптимизации описанные здесь для Phenom II ?
Интересно почему на Gentoo Wiki в Safe Cflags/AMD ссылка на агрессивные флаги дана только для 10-го семейства процессоров AMD ?
И какие существуют объективные способы проверить влияние флагов на стабильность ?

.

Oochee3m написал(а):
какие существуют объективные способы проверить влияние флагов на стабильность ?

"стабильность" сама по себе субъективна, так что "объективно" проверить можете по выхлопу, собрав всё с дебагом...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

По поводу субъективности

По поводу субъективности стабильности не согласен. Существует простой критерий: если что-то работает не так как должно это плохо. Я на старом процессоре собирал некоторые пакеты с флагом -03 и app-arch/p7zip перестал работать в KDE. Какая в этом может быть субъективность ? А использовать дебагинг это общая фраза типа: "человек создан для счастья".
Термин "выхлоп" не понятен. Поконкретнее ничего не посоветуете ? А лучше опытом поделитесь.
Слишком часто на форумах народ даёт советы которые сами не пробовали.

evadim забанен за хамское поведение и нецензурную речь

.

Oochee3m написал(а):
По поводу субъективности стабильности не согласен. Существует простой критерий: если что-то работает не так как должно это плохо

Вся прелесть шутки (простоты критерия) в том, что "не так как должно" далеко не всегда сопровождается сегфолтом, да и сегфолт может прятаться, проявляя себя лишь при каком-то редком стечении условий

Цитата:
Термин "выхлоп" не понятен

Виноват, имелся в виду дебажный лог

Цитата:
Поконкретнее ничего не посоветуете ? А лучше опытом поделитесь

"Обмен опытом" в виде прямых рекомендаций в данной области, имхо, не лучшая практика, поск-ку оно индивидуально, а если всё же рекомендовать, но "фильтровать базар" (оставить из рекомендаций только то, что гарантированно вам ничего не сломает) - как раз и получится ровным счётом те самые известные "общие рекомендации", дык на то они и общие. Иными словами, кнопки "чтоб было супер" здесь не найти...

Цитата:
на старом процессоре собирал некоторые пакеты с флагом -03 и app-arch/p7zip перестал работать

O3, это не флаг, а т.н. метафлаг, включающий большое количество "реальных" флагов (каких именно - см. доки GCC). "Оптовый" тюнинг - вряд ли хороший выбор, и наоборот - значительное кол-во интересных оптимизаций этот метафлаг не охватывает...
P.S. Основные принципы реализации вашей хотелки "под себя" обсуждались на форуме не единожды - найдёте без труда, если у вас душа "просит", ну а если запаслись достаточным количеством "готовности к облому" © - у вас всё получится в лучшем виде (не сразу и вряд ли быстро)
P.P.S. Не всем известный факт: пакеты при сборке вовсе не обязаны использовать ваши флаги - в зависимости от построения их Makefile, сифлаги могут дополняться, перекрываться и просто заменяться другими. Как пример - посмотрите на компиляцию chromium - увидете появление в разных местах того самого пресловутого -O3...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

(*)

Spoiler написал(а):
посмотрите на компиляцию chromium - увидете появление в разных местах того самого пресловутого -O3...

Посмотрел на компиляцию chromium - O3 появляется ТОЛЬКО в строках вида
native_client/toolchain/linux_x86_newlib/bin/x86_64-nacl-gcc ... -std=gnu99 -O3 ...
и это относится ТОЛЬКО к https://developers.google.com/native-client
и это не имеет НИКАКОГО отношения к тому O3 о котором так горячо спорят на этом сайте.

Поэтому.
Не путайте O3 у gcc и O3 у nacl-gcc.

mastepaner

mastepaner написал(а):
Spoiler написал(а):
посмотрите на компиляцию chromium - увидете появление в разных местах того самого пресловутого -O3...

Посмотрел на компиляцию chromium - O3 появляется ТОЛЬКО в строках вида
native_client/toolchain/linux_x86_newlib/bin/x86_64-nacl-gcc ... -std=gnu99 -O3 ...
и это относится ТОЛЬКО к https://developers.google.com/native-client
и это не имеет НИКАКОГО отношения к тому O3 о котором так горячо спорят на этом сайте.

Поэтому.
Не путайте O3 у gcc и O3 у nacl-gcc.

Не намерен использовать -03, вопрос по поводу инструкций -funroll-all-loops -fprefetch-loop-arrays -ffast-math -ftree-parallelize-loops=n -msse4a -mabm.

evadim забанен за хамское поведение и нецензурную речь

>-funroll-all-loops зря >-fpr

>-funroll-all-loops
зря
>-fprefetch-loop-arrays
хз
>-ffast-math
зря - очень редко профит, часто регресс
>-ftree-parallelize-loops=n
где n кол-во процов - это графит(уже стрёмно должно стать) + многий софт просто сломаешь, даже если соберёшь
>-msse4a
вполне безопасно, если 32 бита, то не забудь указать и -mfpmath=sse
>-mabm
хз

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

[quote=megabaks . Большое

[quote=megabaks
.

Большое спасибо за ссылки.

evadim забанен за хамское поведение и нецензурную речь

.

mastepaner написал(а):
O3 о котором так горячо спорят на этом сайте

Стар, наверное, стал - увы, не нашёл, где спорят "горячо". Ну да и к лучшему - споры подобные ещё Свифт описывал. Вот, к примеру, Майку Хоммею (деву мазилы) -O3 нравится, и FireFox для бинарных дистров мазильные хулиганы собирают именно так. Своё же мнение по данному предмету я уже выразил - не приемлю того, что навязывается "оптом", создать собственный набор завсегда эффективнее

Цитата:
Не путайте O3 у gcc и O3 у nacl-gcc

Улыбнуло ;-)
Пока незачёт, но не всё потеряно - вот вам домашнее задание: выяснить, что такое "Native Client SDK" в парадигме программирования chromium, после чего попытаться нагуглить, а что же это такое - "nacl-gcc". У меня есть для вас прямая ссылка, но с моей стороны было бы бестактно публично поставить под сомнение вашу способность самостоятельно справиться с поставленной задачей...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

(*)

Spoiler написал(а):
не приемлю того, что навязывается "оптом", создать собственный набор завсегда эффективнее

Все "обычные пользователи" обычны, но некоторые "обычные пользователи" обычнее других. Не у всех есть время создавать "собственный набор", пересобирая по сто раз сотни пакетов.

Spoiler написал(а):
Улыбнуло

Я долго думал, что тут может улыбать.
Возможно, вы посчитали, будто я утверждал, будто nacl-gcc не gcc-based о_0.
Беда-то в другом. Беда в том, что из-за вас новичкам будут приходить в головы мысли "Это чего, пацанам из гугля можно, а мне нельзя?" и они будут втыкать O3 в свой /etc/make.conf и он попадёт к gcc, в то время у пацанов из гугля O3 попадает только к nacl-gcc, а nacl-gcc внутри www-client/chromium и gcc из sys-devel/gcc - это таки два РАЗНЫХ gcc. Impact от O3 у gcc и Impact от O3 у nacl-gcc из chromium - разный, так что путать эти два разных O3 не следует.

Мне одного только жаль - вместо конкретных поправок вы шлёте "улыбнуло". На "улыбнуло" по протоколу следовало бы просто ответить "Received an invalid response from Spoiler". Так было бы конструктивнее, пожалуй.

.

mastepaner написал(а):
из-за вас новичкам будут приходить в головы мысли

Здесь был большой пост, адресованный фейковому защитнику абстрактных новичков, но он переписан (по причине осознания пользы бисерометания) коротким: "не говорите - что мне делать, и я не скажу - куда вам идти" ©

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Да, я согласен со всем что Вы

Spoiler
Да, я согласен со всем что Вы написали. И знаю из личного опыта что надо использовать безопасные флаги. Для меня основным фактором является стабильность системы. И железо хорошее, без всякой оптимизации работает офигительно. Этот пост обусловлен установкой нового процессора. Душевные метания так сказать... Я имею ввиду не мифическую оптимизацию "под себя" а под процессор. Знаю что некоторые пакеты не используют "сомнительные" флаги. И форум читал, и по сети вчера до 6-и утра бродил. Не удовлетворился... Информация часто противоречивая. Даже в девелоперс мануалах. Элементарный вопрос: что использовать "-march=native" или "-mtune=amdfam10 -march=amdfam10" не прояснил.
Я ни когда не занимался дебагингом чужих программ. А уж бенчмарк был выкакан лет 8 назад, ещё при использовании винды.
Что посоветуете для выяснения изменений в поведении пакетов ? Ссылка подойдёт если для её понимания не понадобится учить язык С.

evadim забанен за хамское поведение и нецензурную речь

.

Oochee3m написал(а):
Что посоветуете для выяснения изменений в поведении пакетов ?

Вот конкретно по данному вопросу - не сильный я советчик. Без кокетства, по-чесноку. Самому было бы интересно узнать - существуют ли какае инструментальные средства для этого. Имхо - вряд ли, очень уж трудно формализовать "изменения в поведении". Если же "подразмельчить" хотелку - ну разве что бенчмарки какие или стресс-тесты. В общем - не, не знаю, sorry...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Ну, в плане изменений - помню

Ну, в плане изменений - помню баловался valgrind, надо было разгрузить машину, дергающую на и исполнение несколько файлов в больших количествах в единицу времени. То был бинарь, и то не в gentoo. После пересбора пакета "под проц", обнаружил уменьшение числа выполненных инструкций при запуске процентов на 15.

это тождественно может

это тождественно может быть

Oochee3m написал(а):
Элементарный вопрос: что использовать "-march=native" или "-mtune=amdfam10 -march=amdfam10" не прояснил.

если cat /proc/cpuinfo

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv

имеет в себе все флаги как для amdfam10

(This supersets MMX, SSE, SSE2, SSE3,SSE4A, 3DNow!, enhanced 3DNow!, ABM and 64-bit instruction set extensions.)

(с) man gcc

Однако, при этом, при жестком указании amdfam10, вы можете лишить себя удовольствия использовать некие дополнительные возможноси (инструкции) вашего конкретного процессора, которые отсутствуют в описаниях amdfam10 и i686-generic вместе взятых.... или совсем наоборот... заставите использовать инструкцию непонятную для проца...

Однако, при этом, вы можете компенсировать этот недостаток путём включения дополнительных опций в сфлагс....

Однако - а зачем эти лишние телодвижения, если можно просто указать "-march=native" ???

Что касается...

>>по поводу инструкций -funroll-all-loops -fprefetch-loop-arrays -ffast-math -ftree-parallelize-loops=n -msse4a -mabm.

...man gcc до нужной страницы...
...я не программист и не кикаю по английски...
...но и у меня возникает вопрос - а на Х вам это надо?...

К чему все эти телодвижения и оправданы ли они?

Например, можно, в результате неких телодвижений и умозаключений, отключить "проверка деления ноль" ...
Критично ли это?
в 99,9% - безопасно (или жизнь\условия не спровоцируют этого условия, или спровоцируют - но у другого)
Но что делать, если программист не проверил на 0 перед делением, а программа даже не сообщает отчего она "гавкнулась"?

Так что нельзя (в контексте заголовка топика) говорить - что такое - хорошо, и что такое - плохо...

Знаете что делать - делайте.... и не жалуйтесь на жизнь (нестабильность софта)..

а будет ли быстрее ?

будет...

ведь любая, даже элементарная, проверка, например, значения в регистре на 0 и переход на выход по условию, пусть и на микро-микро-микро секунды но замедляют работу программы

имхо, идеал программы - main() {return(0);}
%)

что-то добрый я сегодня ....

.

leryc написал(а):
зачем эти лишние телодвижения, если можно просто указать "-march=native" ?

Тому есть две (как минимум) причины:
1. Возможно, это частный случай, но всем имеет смысл проверять у себя в конкретных условиях. Это несложно - смотрим echo "int main() { return 0; }" | gcc -march=native -v -Q -x c - 2>&1 В моём случае неприятность в том, что компилятор упорно пытается использовать инструкцию sahf, хотя Intel уже исключил её из набора команд моего камня (i7-2600K), и соотв. она отсутствует в выхлопе из /proc/cpuinfo. Приходится добавлять в сифлаги -mno-sahf
2. Некоторые пакеты при сборке нагло пытаются подменить "-march" на сверхбезопасное (в общем случае) значение "generic". Но, поск-ку у меня не общий случай, а очень даже частный, и никакой кросс-компиляцией даже и не пахнет, приходится перекрывать такое поведение указанием -mtune=corei7-avx (подмены "-mtune" пока не замечал)
Так что, одновременное указание -march=native и -mtune=corei7-avx нельзя признать избыточным

Мы тоже не всего читали Шнитке!.. © В. Вишневский

покажите пожалуйста что у вас

покажите пожалуйста что у вас нагенерил march=native

.

bes.internal написал(а):
покажите

См. здесь

Мы тоже не всего читали Шнитке!.. © В. Вишневский

извини, не догоняю....

извини, не догоняю.... ;(
...то ли буков много, то ли совсем ослеп....
у меня i7-2600 и march=native и разницы в выхлопах не нашел....
вроде всё так же...

покажи, пожалуста, флаги проца из cpuinfo и что конкретно заявлено в сифлагс?

и уж совсем не понял

В моём случае неприятность в том, что компилятор упорно пытается использовать инструкцию sahf, хотя Intel уже исключил её из набора команд моего камня (i7-2600K), и соотв. она отсутствует в выхлопе из /proc/cpuinfo. Приходится добавлять в сифлаги -mno-sahf

-mno-sahf === -msahf ? (mno-sahf не нашел в листинге)

и зачем передавать через сифлагс -msahf ибо оно и так там "по умолчанию" ?

что-то добрый я сегодня ....

man gcc

>-mno-sahf === -msahf ? (mno-sahf не нашел в листинге)
-mno-* отключает -m*
погугли хотя бы

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

.

leryc написал(а):
не догоняю

Потому, что вы пропустили (или не обратили внимания на) главное - откуда произошёл выхлоп, т.е. по какому заданию отработал GCC. Повторять лениво, просто ещё раз посмотрите предыдущие посты

Цитата:
у меня i7-2600 и march=native и разницы в выхлопах не нашел

Если задание то же самое под такой же камень - какую разницу вы собираетесь обнаружить?

Цитата:
покажи, пожалуста, флаги проца из cpuinfo и что конкретно заявлено в сифлагс?

Снова внимательно см. задание - все сифлаги состоят из единственноного -march. Задание составлено именно так, а не иначе, затем, что опять же см. посты выше. А cpuinfo (ессно, как вы понимаете, только 1/8 часть его) вот:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
stepping        : 7
microcode       : 0x1b
cpu MHz         : 3392.456
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips        : 6784.91
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
Цитата:
-mno-sahf === -msahf ? (mno-sahf не нашел в листинге)

Во-первых, я не понял, что это за знак присваивания/сравнения/чего-то ещё. Во-вторых, откуда бы mno-sahf взяться, если его никто и не указывал?!?

Цитата:
зачем передавать через сифлагс -msahf ибо оно и так там "по умолчанию" ?

Да кто ж вам сказал такое? Как раз потому, что оно дефолтное, но неуместное, и надо бы передавать -mno-sahf

Мы тоже не всего читали Шнитке!.. © В. Вишневский

спасибо за

спасибо за внимание...

погугли хотя бы

так спросить проще, чем гуглить ;)
и даже - man'ить ;)

какую разницу вы собираетесь обнаружить?

мне инересно есть ли разница между 2600 и 2600K

что это за знак присваивания/сравнения/чего-то ещё.

=== - это "тождественно" или "истинная истина" (ну как-то так ;) )

догнал (вроде)

я уперся в строку 25 и далее, абсолютно проигнорировав строку 1
совсем слепой стал... ;(

конечно в этом случае разницы с моим выхлопом не будет (вроде не болжно быть)

тогда еще 1 уточняющий вопрос - у вас make.conf "march=-march=corei7-avx -mno-sahf" ?
и есть еще какие дополнительные опции ?

честно говоря не знаю, за что там отвечает sahf (надо идти гуглить) и нужен ли он в жизни - но если б не дебаты в топике, то еще бы 255 лет не обратил бы на это внимание, - но никогда не заморачивался и проблем не было (вроде как)

сенкс

что-то добрый я сегодня ....

.

leryc написал(а):
есть ли разница между 2600 и 2600K

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

Цитата:
=== - это "тождественно" или "истинная истина"

Спасибо, уже нагуглил (PHP мне незнаком, и, надеюсь - не будет)

Цитата:
у вас make.conf "march=-march=corei7-avx -mno-sahf" ?

Нет, -march=native -mtune=corei7-avx -mno-sahf

Цитата:
и есть еще какие дополнительные опции ?

Да

Цитата:
не знаю, за что там отвечает sahf (надо идти гуглить) и нужен ли он в жизни

Как человек, начинавший знакомство с вычислительной техникой, в отличие от подавляющего большинства - с ассемблера, могу сказать, что "ненужных" инструкций не бывает. Чем больше различных команд - тем больше свободы кодеру для "бит-жонглёрства". А конкретно, SAHF/LAHF - пара комплиментарных инструкций, для сохранения/восстановления флагов состояния в/из аккумулятор(а). И вот теперь в силиконовой долине решили, что SAHF в i7 - рудимент, а LAHF пусть пока пока побудет. Что ж, жираф - большой, ему видней... :-)

Цитата:
никогда не заморачивался и проблем не было

При трансляции сишного (и др. высокоуровневого) кода, компилятор по своему усмотрению может, но, ессно, не обязан применять всё-всё множество доступных ему инструкций. И поскольку я вижу, что он может применить команду, которую камень заведомо не поймёт - моя обязанность позаботиться о том, чтобы он "забыл" о её существовании. То, что у вас не было проблем - это "пёрка лотерейная", вам и только вам заценивать, чей бонус весомее - пёрки или гарантии...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

спасибо за вашу нелень.... с

спасибо за вашу нелень....
с меня бутылка, напомните при встрече...
;)

что-то добрый я сегодня ....

Spoiler, сначала поверил вам

Spoiler, сначала поверил вам наслово, но недавно нашел вот что:

477    has_lahf_lm = ecx & bit_LAHF_LM;
699    const char *sahf = has_lahf_lm ? " -msahf" : " -mno-sahf";

это из gcc-4.6.2/gcc/config/i386/driver-i386.c (насколько я понял тут автоматическое определение arch, tune и расширений )

Из чего вы взяли что этого расширения нет в вашем процессоре мне не понятно.

.

bes.internal написал(а):
Из чего вы взяли что этого расширения нет в вашем процессоре

Моём?! У меня нет "своего" процессора (как бы мне этого не хотелось). По сабжу, для начала - см. cat /proc/cpuinfo, а глубже - вас что, в гугле забанили? Мне стыдно, что кому-то требуются прямые ссылки - моё время что, дешевле вашего?? Бегом брысь искать до посинения, и только если не найдёте - получите ссылкой по- (чему - сами решите)

Мы тоже не всего читали Шнитке!.. © В. Вишневский

(*)

http://ru.wikipedia.org/wiki/Чайник_Рассела - вы должны предоставлять прямые ссылки на ваши нефальсифицируемые утверждения, даже если вам стыдно.

.

mastepaner написал(а):
вы должны

А вы не опупели, малоуважаемый (мною) с такими закидонами?? Грибы? Растворы? Другие вещества? Или мы наблюдаем креатив в стиле ребрендинга знаменитой басни дедушки Крылова (для тех, кто в танке - в названии два персонажа)?

Мы тоже не всего читали Шнитке!.. © В. Вишневский

(*)

Бертран Рассел утверждает, что должны. Это логически следует из статьи, ссылку на которую я вам дал. Стыдитесь, что мне пришлось это вам разжевать.
Почему вы злитесь на меня? Злитесь на Бертрана Рассела. Где ваша культура спора? Как говорится "своим внимательным отношением к мнению противника спорящий сразу завоевывает себе симпатии среди тех, кто наблюдает за спором".

.

mastepaner написал(а):
Рассел утверждает, что должны

И?? Старина Зигги утверждает, что ваше поведение ("счёт 3:0" (это из другого топика, помните?), выпрашивание ссылок, etc...) конгруэнтно поведению ЧМО ("человек, материально обеспеченный", остальные синонимы - см. педивикию). Следует ли из этого, что вы - ЧМО? Сумневаюсь как-то, это слишком круто. Скорее, всё проще - troll detected...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

(*)

Вы озвучили вариант следствия из нефальсифицируемого утверждения Фрейда и тут же усомнились в нём. Из вашего сомнения не следует ложность утверждения Рассела. А счёт 3:0 достался мне тяжёлым трудом, не надо умалять его значимости.

.

mastepaner написал(а):
счёт 3:0 достался мне тяжёлым трудом, не надо умалять его значимости

Значимость вашего счёта самоценна, кто же может его умалить, кроме самого счетовода (вас)? Кто раньше встал посчитал - того и счёт...
На этом форуме до сих пор был единственный полуюзер/полумодер, имеющий честь быть персонажем моего игнор-списка. Появился второй кандидат, I'm sorry... Тенденция настораживает...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

(*)

Жаль, что вы не предоставили прямой ссылки для bes.internal
Ваше невежливое "Бегом брысь искать" даёт повод предположить, что у вас её и не было никогда.
Потому что на этом форуме люди вежливы друг с другом. Форум-то технический.

.

mastepaner написал(а):
Жаль, что вы не предоставили прямой ссылки для bes.internal

Попросит (не найдя самостоятельно) - предоставлю. Ваша же сторона в этом флудопотоке - дальний-дальний лес. Сходите "туда", и возвращайтесь (форум-то - технический)...

Мы тоже не всего читали Шнитке!.. © В. Вишневский

Вы попутали берега! Я вас

Вы попутали берега! Я вас обвиняю в некомпетентности и при этом вы предлагаете мне искать какие-то линки?..
Да пожалуйста - http://gentoo.ru/node/24587#comment-183339 - линк на ваш пост в этом треде с вашим proc/cpuinfo где явно указан lahf_lm
К сожалению продолжать с вами беседу означает опуститься до вашего же уровня, поэтому на этом и закончу

хз-хз

некомпетентность...ну не факт
содержание cpuinfo не всегда верно
точнее так - не все флажки в нём отражают то, что должны
например на моей E7200 оно разглядело HT, а его там никогда не было

#define X86_FEATURE_HT		(0*32+28) /* Hyper-Threading */

в cpuinfo флажок ht есть
я не заявляю, что {L,S}AHF есть или нет, просто это надо раскурить ещё
если шаришь в железяках, кури /usr/src/linux/arch/x86/include/asm/cpufeature.h

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

bes.internal

bes.internal написал(а):
покажите пожалуйста что у вас нагенерил march=native

user ~ $ gcc -Q --help=target -march=native
Следующие ключи не зависят от целевой архитектуры:
  -m128bit-long-double                  [выключено]
  -m32                                  [выключено]
  -m3dnow                               [выключено]
  -m3dnowa                              [выключено]
  -m64                                  [включено]
  -m80387                               [включено]
  -m96bit-long-double                   [включено]
  -mabi=                      
  -mabm                                 [включено]
  -maccumulate-outgoing-args            [выключено]
  -maes                                 [выключено]
  -malign-double                        [выключено]
  -malign-functions=          
  -malign-jumps=              
  -malign-loops=              
  -malign-stringops                     [включено]
  -march=                               amdfam10
  -masm=                      
  -mavx                                 [выключено]
  -mbranch-cost=              
  -mcld                                 [выключено]
  -mcmodel=                   
  -mcrc32                               [выключено]
  -mcx16                                [включено]
  -mfancy-math-387                      [включено]
  -mfma                                 [выключено]
  -mfma4                                [выключено]
  -mforce-drap                          [выключено]
  -mfp-ret-in-387                       [включено]
  -mfpmath=                   
  -mfused-madd                          [включено]
  -mglibc                               [включено]
  -mhard-float                          [включено]
  -mieee-fp                             [включено]
  -mincoming-stack-boundary=  
  -minline-all-stringops                [выключено]
  -minline-stringops-dynamically        [выключено]
  -mintel-syntax                        [выключено]
  -mlarge-data-threshold=     
  -mlwp                                 [выключено]
  -mmmx                                 [выключено]
  -mmovbe                               [выключено]
  -mms-bitfields                        [выключено]
  -mno-align-stringops                  [выключено]
  -mno-fancy-math-387                   [выключено]
  -mno-push-args                        [выключено]
  -mno-red-zone                         [выключено]
  -mno-sse4                             [включено]
  -momit-leaf-frame-pointer             [выключено]
  -mpc                        
  -mpclmul                              [выключено]
  -mpopcnt                              [включено]
  -mpreferred-stack-boundary= 
  -mpush-args                           [включено]
  -mrecip                               [выключено]
  -mred-zone                            [включено]
  -mregparm=                  
  -mrtd                                 [выключено]
  -msahf                                [включено]
  -msoft-float                          [выключено]
  -msse                                 [выключено]
  -msse2                                [выключено]
  -msse2avx                             [выключено]
  -msse3                                [выключено]
  -msse4                                [выключено]
  -msse4.1                              [выключено]
  -msse4.2                              [выключено]
  -msse4a                               [выключено]
  -msseregparm                          [выключено]
  -mssse3                               [выключено]
  -mstack-arg-probe                     [выключено]
  -mstackrealign                        [включено]
  -mstringop-strategy=        
  -mtls-dialect=              
  -mtls-direct-seg-refs                 [включено]
  -mtune=                               amdfam10
  -muclibc                              [выключено]
  -mveclibabi=                
  -mxop                                 [выключено]

evadim забанен за хамское поведение и нецензурную речь

никогда!

никогда не пользуйся

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

для подглядывания флагов!
оно гонит
UPD
дабы 100 раз не писать
твой проц amdfam10
это непотребство показывает, что все *sse* выключены, ок
смотрим ман:

           amdfam10, barcelona
               AMD Family 10h core based CPUs with x86-64 instruction set support.  (This supersets MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!,
               enhanced 3DNow!, ABM and 64-bit instruction set extensions.)

смотрим выхлоп

echo "int main() { return 0; }" |LANG=en gcc -march=amdfam10 -v -Q -x c - 2>&1

смотрим sse:

-mno-sse4
-msse 
-msse2 
-msse3
-msse4a

то же самое с -mmmx
так же тут обсуждалось
мой тебе совет - не используй это

Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy

megabaks написал(а):никогда

megabaks написал(а):
никогда не пользуйся

Понятно, спасибо. Тогда получается что native всё корректно включает.

evadim забанен за хамское поведение и нецензурную речь

Господи! Идем на

Господи! Идем на developer.amd.com, ищем раздел со спецификация и т.п, ищем по слову Compiler Options и по интересующему продукту, скачиваем пдф, смотрим колонку с gcc... PROFIT!
http://developer.amd.com/documentation/guides/Pages/default.aspx#developer_guides

Да Вы не горячитесь так

Да Вы не горячитесь так сильно, спокойнее надо быть. Особенно если хочется какую нибудь глупость сморозить.
Отвечать что-нибудь язвительное или грубое не буду потому-что Вы явно не в себе.
Стал бы я подобные вопросы задавать если бы мог это осилить ? Впрочем я знаю что Вы сами на основе этой документации ничего не сделаете. Более того: уверен что Вы эту ссылку только-что нашли и видите её в первый раз.

P.S. Ахринеть сколько неадекватных эээ... даже не знаю как назвать. Нутыпонил.

evadim забанен за хамское поведение и нецензурную речь

Где я горячился, переходил на

Где я горячился, переходил на личности? Я резонно возмущаюсь, потому что вопросы от капитана очевидность могут вывести кого угодно. Хорошо, я попробую вам еще раз ответить :)

Интересно почему на Gentoo Wiki в Safe Cflags/AMD ссылка на агрессивные флаги дана только для 10-го семейства процессоров AMD ?

Потому что это вики и человек, который нашел только интересующую его информацию по своему процессору не поленился поделиться с ней?..

И какие существуют объективные способы проверить влияние флагов на стабильность?

тестирование

Вообще вопросы сильной оптимизации при компиляции это из разряда личного экспериментаторства. Потому что даже если у кого-то что-то работает это не значит что список софта который собирается, железа на котором запускается, даже внешняя среда сиречь вдажность и температура у вас совпадают. А всё это и даже фаза луны c активностью солнца влияют на стабильность работы софта

Впрочем я знаю что Вы сами на основе этой документации ничего не сделаете.

no comments...

Более того: уверен что Вы эту ссылку только-что нашли и видите её в первый раз.

Я не поленился, рассмотрел ваш вопрос, просмотел пдф, зашел на портал и нашел всё что вам нужно. Хотяб спасибо что ли сказали. Ай, от вас не добьешься...

Да ладно, замяли. Капитан

Да ладно, замяли. Капитан очевидность не задаёт вопросы, он даёт ответы.

evadim забанен за хамское поведение и нецензурную речь

Господа, про меня все слыщали


Господа, про меня все слышали ?
Верите, что я НЕ буду разбиратся кто первый начал и кто больше виноват ?

Пожалуйста, держитесь в рамках вежливого, спокойного и уважительного общения

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Могу только повторить вопрос

Не надо видеть в вопросах то чего в них нет !

"Кто пробовал выставлять агрессивные флаги оптимизации описанные здесь для Phenom II ?
Интересно почему на Gentoo Wiki в Safe Cflags/AMD ссылка на агрессивные флаги дана только для 10-го семейства процессоров AMD ?
И какие существуют объективные способы проверить влияние флагов на стабильность ?"

Увод темы в сторону и бесполезные ответы (ссылки) расцениваю как флуд. А следовательно помехой получить ответ.

P.S. За рамки корректности я не вышел, но ты не преминул обострить. Так что да, про тебя все слышали.

evadim забанен за хамское поведение и нецензурную речь

.

slepnoga написал(а):
Верите, что я НЕ буду разбиратся кто первый начал и кто больше виноват ?

Истинный христианинъ, верный последователь принципов Торквемады:
"Сожгите Всё! Огонь очистит от греха! Убейте всех! Господь распознает своих!"
:D

+1

+1

evadim забанен за хамское поведение и нецензурную речь

у меня мир собран -O3 и так

у меня мир собран -O3 и так же amdfam10 phenom 2 x920, вроде все работает))) но есть ли разница по сравнению с О2, сказать не могу, потому как она основана на эффекте плацебо)) Так что мне конечно тоже все это интересно но я не программер чтоб дебажить код и смотреть скорость его выполнения

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

Основной интерес в том как узнать плацебо-неплацебо. А -O3 использовать системвайлд это рулетка.

evadim забанен за хамское поведение и нецензурную речь

Большое спасибо всем !

Большое спасибо всем ! После обсуждений и обдумывания пришёл к таким выводам:

1) Стоит использовать -march=native но проверять что он включает/выключает и корректировать
(в моём случае попробую дополнить -msse4a).

2) Быстро проверить лучше стало или хуже нечем :-(

evadim забанен за хамское поведение и нецензурную речь

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

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