LinuxForum.Fans
Тема

Хочу попробовать debian

Автор: serg86 41 сообщений 5710 просмотров
#235355
drBatty написал:
[quote=Peter]Компьютеры были разные, но процессоры в них были одинаковые, Intel Core 2 Quad 2.4GHz.

ну... я уж не говорю про опции компиляции и ос :(
я-бы на таких данных вообще-бы _ничего_ не утверждал.

Peter написал:
Пишут, что в 64-разрядной системе какие-то инструкции быстрее выполняются,
я не интересовался подробностами.

да-да. быстрее. Более чем Вдвое! Я вам даже скажу какие: команды адресной арифметики, при адресе в 64 бита. Т.е. если вашему приложению нужно перепрыгнуть на 12Гб дальше, то это конечно нужно. А у вас такие приложения есть? Сколько ваша программа потребляет гигабайт оперативной памяти? :P
Ну а именно сами данные, уже много лет (с третьего пня) гоняются через 128и битное SSE, которое для того и придумано. Просто вы наверняка собирали свою программу с дефолтными опциями, вот и собрали так, что 32х битная версия не умеет SSE, ибо скажем во втором пне его ЕМНИП не было. А в первом пне без MMX не было даже MMX, всегда ваш К.О. Ну а в х64 SSE2 очевидно есть, тот же К.О., вот и собирали вы под SSE2. Ну и кто тут виноват? 32х битная архитектура, или разработчик, который не в курсе о технологиях 15и летней давности? (я про SSE, MMX ваще древность). Смысл в вашей программе, которая "умеет" работать на i80386? (в кавычках потому, что программа ваша может и умеет, но вот ОС, под которую она собрана, там даже не запустится).
Ну а на самом деле, разницы между режимами нет, и быть не может, во всяком случае до тех пор, пока у нас нет приложений, которые тратят >4Gb сразу.[/quote]

Программа компилировалась в обоих случаях с одинаковыми опциями, т.к. была просто перенесена, так что sse и sse2
были включены в обоих же случаях. В 32-разрядной Ubuntu Qt-4.7.2, а в 64-разрядной - 4.8.0.
Вообще меня как потребителя больше интересует сам факт - где работает быстрее, а не причина,
тем более, что от меня она не зависит.

Пётр.

#235380
Peter написал:
Вообще меня как потребителя больше интересует сам факт - где работает быстрее, а не причина,
тем более, что от меня она не зависит.

вот и нормальная wiki (не русская) тоже говорит о том, что важным преимуществом x64 является принудительное использование SSE2(и других новых фишек). Это самое SSE2 конечно можно и так использовать, если программист _явно_ об этом написал, но программисту обычно всё равно, его больше интересует что попроще - собрал, запустил, посмотрел время. Во всякие детали нынешние программисты вдаваться не желают.

#235397
drBatty написал:
[quote=Peter]Вообще меня как потребителя больше интересует сам факт - где работает быстрее, а не причина,
тем более, что от меня она не зависит.

вот и нормальная wiki (не русская) тоже говорит о том, что важным преимуществом x64 является принудительное использование SSE2(и других новых фишек). Это самое SSE2 конечно можно и так использовать, если программист _явно_ об этом написал, но программисту обычно всё равно, его больше интересует что попроще - собрал, запустил, посмотрел время. Во всякие детали нынешние программисты вдаваться не желают.[/quote]
Я же сказал - были включены, т.е. мной, в pro-файле, соответственно и в Makefile.

Пётр.

#235423
Peter написал:
Я же сказал - были включены, т.е. мной, в pro-файле, соответственно и в Makefile.

а в Qt были? А в разных библиотеках были?

#235436
drBatty написал:
[quote=Peter]Я же сказал - были включены, т.е. мной, в pro-файле, соответственно и в Makefile.

а в Qt были? А в разных библиотеках были?[/quote]
Не понимаю, при чём тут Qt, если эти опции Makefile передаёт компилятору.

Пётр.

#235440
Peter написал:
Не понимаю, при чём тут Qt, если эти опции Makefile передаёт компилятору.

при том, что вы не гентушник и не слакварщик. И пользуетесь УЖЕ собранным Qt, которая вовсе не обязана юзать SSE2, в отличие от 64х битной версии.

#235516
drBatty написал:
[quote=Peter]Не понимаю, при чём тут Qt, если эти опции Makefile передаёт компилятору.

при том, что вы не гентушник и не слакварщик. И пользуетесь УЖЕ собранным Qt, которая вовсе не обязана юзать SSE2, в отличие от 64х битной версии.[/quote]
Действительно, я совершенно не подумал, что для декодирования jpg у меня вызывается
подпрограмма из Qt. Но и при использовании для этого моей подпрограммы при переходе
с 32-разрядной Ubuntu на 64-разрядную наблюдается ускорение, но меньшее, сейчас не помню
на сколько, кажется, процентов на 12.

Однако в 32-разрядной Ubuntu использовалась не дистрибутивная Qt, а скомпилированная,
qt-everywhere-opensource-src-4.7.2, установилась в /usr/local/Trolltech/.
Там среди опций configure для sse2 и подобных есть опции только для отключения,
например, -no-sse2. Отсюда следует, что по умолчанию они включены.

Пётр.

#235570
Peter написал:
Отсюда следует, что по умолчанию они включены.

не следует.

Peter написал:
Но и при использовании для этого моей подпрограммы при переходе
с 32-разрядной Ubuntu на 64-разрядную наблюдается ускорение, но меньшее, сейчас не помню
на сколько, кажется, процентов на 12.

вполне возможно, если вы замыслили обрабатывать 64х битные данные через РОН. Естественно, это будет быстрее, если РОН 64х битные. Но тут опять-таки - это ваши проблемы, а никак не проблемы архитектуры.

#235589
drBatty написал:
[quote=Peter]Отсюда следует, что по умолчанию они включены.

не следует.
[/quote]
Я ожидал, что вы с этим не согласитесь, но это вполне естественное предположение - если что-то
можно выключить, но нельзя включить, значит, оно включено.

Peter написал:
Но и при использовании для этого моей подпрограммы при переходе
с 32-разрядной Ubuntu на 64-разрядную наблюдается ускорение, но меньшее, сейчас не помню
на сколько, кажется, процентов на 12.

вполне возможно, если вы замыслили обрабатывать 64х битные данные через РОН. Естественно, это будет быстрее, если РОН 64х битные. Но тут опять-таки - это ваши проблемы, а никак не проблемы архитектуры.

Я не использовал квалификатор register, а компилировалось с опциями "-O3 -mtune=generic".

Пётр.

#235596

Ох уж это "-O3 -mtune=generic", на gentoo посиди чуток и поймешь что лучше всего "-02 -march=native -mtune=native -pipe" или "-02 -march=amdfam10 -pipe" для последних amd.

#235616
newzenon написал:
Ох уж это "-O3 -mtune=generic", на gentoo посиди чуток и поймешь что лучше всего "-02 -march=native -mtune=native -pipe" или "-02 -march=amdfam10 -pipe" для последних amd.

Зато быстрее.

Пётр.

#235619
Peter написал:

Зато быстрее.
Пётр.

Сотни тредов по этому поводу в сети и везде один вывод - 03 медленнее на самом деле. Объяснять не буду информации полно, изучай.

#235624
Peter написал:
Я ожидал, что вы с этим не согласитесь, но это вполне естественное предположение - если что-то
можно выключить, но нельзя включить, значит, оно включено.

лампочка в сортире может быть включена, может быть выключена, а может быть выкручена. Если она не выкручена, это не значит, что в сортире есть свет. Она может быть
1. выключена
2. разбита
3. может просто перегореть
4. электричество может быть тоже выключено/проводка повреждена.
Но если лампочку выкрутить, то света точно не будет.

Peter написал:
Я не использовал квалификатор register, а компилировалось с опциями "-O3 -mtune=generic".

ну и как оно по вашему завернёт ваш код на SSE регистры? А никак. Будет как обычный код на обычных регистрах выполнять. А они в 64х битном режиме становятся вдвое больше.

newzenon написал:
Ох уж это "-O3 -mtune=generic", на gentoo посиди чуток и поймешь что лучше всего "-02 -march=native -mtune=native -pipe" или "-02 -march=amdfam10 -pipe" для последних amd.

ага. Я и говорю: Peter не гентушник, и не слакварщик :P

#235625
newzenon написал:
Сотни тредов по этому поводу в сети и везде один вывод - 03 медленнее на самом деле.

не... иногда и быстрее. Иной раз -Os быстрее, такой вот парадокс...
Однозначно одно: -O3 хуже, и нужна только для тестирования новых возможностей, которые (если себя проявят) перейдут в -O2.

#235660
newzenon написал:
[quote=Peter]
Зато быстрее.
Пётр.

Сотни тредов по этому поводу в сети и везде один вывод - 03 медленнее на самом деле. Объяснять не буду информации полно, изучай.[/quote]
Так быть не должно. Во всяком случае, эта моя программа работает быстрее при "-O3".

Пётр.

#235662
drBatty написал:

[quote=Peter]Я не использовал квалификатор register, а компилировалось с опциями "-O3 -mtune=generic".

ну и как оно по вашему завернёт ваш код на SSE регистры? А никак. Будет как обычный код на обычных регистрах выполнять. А они в 64х битном режиме становятся вдвое больше.[/quote]
Это, конечно, никак, компилятору отдельно передаются опции для включения sse2, но вы же сами говорили,
что это зависит не от опций, а от того, собрана ли Qt с подержкой sse2.

Пётр.

#235669
Peter написал:

Так быть не должно. Во всяком случае, эта моя программа работает быстрее при "-O3".

Поставь Gentoo и пересобери мир с -02 и -03 вот тогда будет о чем говорить.

#235702

эта моя программа работает быстрее при "-O3".

Связи между флагом компиляции -O3 и скоростью работы скомпилированной программы нет.
А еще вы можете поставить -O13 и думать, что соберете кеды за 3 минуты. Но будьте готовы к тому, что компилятор выдаст ошибку на примерно восьмой секунде компиляции (где-то я слышал это выражение - не помню).

#235716
metra написал:
Связи между флагом компиляции -O3 и скоростью работы скомпилированной программы нет.

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

metra написал:
А еще вы можете поставить -O13

это ещё что за НЁХ?

metra написал:
Но будьте готовы к тому, что компилятор выдаст ошибку на примерно восьмой секунде компиляции (где-то я слышал это выражение - не помню).

вы видно его полностью переврали. Или уже такое услышали.

Показать
-O
-O1 Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a large function.

With -O, the compiler tries to reduce code size and execution time, without performing any optimizations that take a great deal of compilation
time.

-O turns on the following optimization flags:

-fauto-inc-dec -fcprop-registers -fdce -fdefer-pop -fdelayed-branch -fdse -fguess-branch-probability -fif-conversion2 -fif-conversion
-fipa-pure-const -fipa-reference -fmerge-constants -fsplit-wide-types -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce
-ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre -ftree-phiprop -ftree-sra -ftree-pta -ftree-ter -funit-at-a-time

-O also turns on -fomit-frame-pointer on machines where doing so does not interfere with debugging.

-O2 Optimize even more. GCC performs nearly all supported optimizations that do not involve a space-speed tradeoff. As compared to -O, this option
increases both compilation time and the performance of the generated code.

-O2 turns on all optimization flags specified by -O. It also turns on the following optimization flags: -fthread-jumps -falign-functions
-falign-jumps -falign-loops -falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks
-fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove
-freorder-blocks -freorder-functions -frerun-cse-after-loop -fsched-interblock -fsched-spec -fschedule-insns -fschedule-insns2
-fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-pre -ftree-vrp

Please note the warning under -fgcse about invoking -O2 on programs that use computed gotos.

-O3 Optimize yet more. -O3 turns on all optimizations specified by -O2 and also turns on the -finline-functions, -funswitch-loops,
-fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize and -fipa-cp-clone options.

-O0 Reduce compilation time and make debugging produce the expected results. This is the default.

-Os Optimize for size. -Os enables all -O2 optimizations that do not typically increase code size. It also performs further optimizations designed
to reduce code size.

-Os disables the following optimization flags: -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays -ftree-vect-loop-version

If you use multiple -O options, with or without level numbers, the last such option is the one that is effective.

metra написал:
что соберете кеды за 3 минуты.

ну не за 3, но самое быстрое с -O0

#236042

Помогите с репозиториями, что-то их слишком много).
Хочу пользоваться, так сказать стандартными репами для тестинга, желательно на зеркале Яндекса, напишите пожалуйста, какие мне источники следует добавить? Чтобы все корректно устанавливалось и обновлялось). А то пробовал, все время какие-то недоступны или написано Игн( кстати что это значит?).

Спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.