LINUX.ORG.RU

[sse2]Пересборка GTK


0

1

Видел примерно с месяц назад тут тред, то-ли в толксах, то-ли в галерее, с пересобранным GTK с поддержкой sse2. Хвалились тем что отрисовка стала заметно быстрее. Как сие осуществить на арче?

Deleted
Ответ на: комментарий от RPG

RPG

Ну скажем так, я написал код на чистом ассемблере, у меня везде xmm, movups и т. п. Засовываю прям как есть в компилятор с -O2 и -S чтобы увидеть ассемблерный код, созданный компилятором. И что вижу? Стандартные регистры, и сплошные fpu-инструкции.

бред какой-то. Во первых - какие нафиг -O??? Во вторых - что написали, то и получится. Это какой-то глюк наверное.

RPG

Да, да, только не с SSE, а с SSE2

в SSE int никто не отменял. чуть ниже прочитайте.

RPG

Хм, надо попробовать, что-то я читал про него, но эффекта таки не добился, да и всё чаще вместо теплого лампового autotools попадается cmake или scons.

там тоже должна быть такая опция. Вы думаете как пакеты в вашем дистре собираются? Тоже что-ли ручками переносят? Но повторяю - вы превратите ВСЮ систему в помойку!. А так у вас помойка в /usr/local/.

RPG

Так что идея с перенастройкой системы на /usr/local мне больше нравится, главное чтобы ещё работало.

первое время будет всё хорошо. Только никому не рассказывайте. Подождите немного.

RPG

Я знаю, для чего нужен /usr/local, но не знаю какого генту у меня оно не работает:( Точнее работает, но только если в /usr/ нет аналога.

очевидно потому, что для ldconfig /usr обладает бОльшим приоритетом, чем /usr/local (что правильно, ибо нефиг. Это вам не слакварь!)

drBatty ★★
()
Ответ на: комментарий от drBatty

бред какой-то. Во первых - какие нафиг -O??? Во вторых - что написали, то и получится. Это какой-то глюк наверное.

См. мой pastebin, можете самостоятельно поиграться, где-то у меня тот же цикл но на ассемблере был, да посеял:(

там тоже должна быть такая опция. Вы думаете как пакеты в вашем дистре собираются? Тоже что-ли ручками переносят? Но повторяю - вы превратите ВСЮ систему в помойку!. А так у вас помойка в /usr/local/.

Я пересобрал пару либ и тунар. Пофик:) Но советы учту, может потом разберусь что я не так делал.

очевидно потому, что для ldconfig /usr обладает бОльшим приоритетом, чем /usr/local (что правильно, ибо нефиг. Это вам не слакварь!)

Мда. И что делать? Я так понимаю ему будет плевать на /usr/local/lib покуда есть /usr/lib. Что по-моему сейчас и творится. Но я блин не для красоты же собираю софт и либы. Вот если я собрал программу Васи Пупкина, о которой мейнтейнеры убунту никогда и не слышали, всё будет ок. Но стоит пересобрать Cairo - полезет куча глюков.

да... Анон уже не торт. причём тут PATH-то? бегом читать про LD_LIBRARY_PATH

Анан торт, он про другое вообще говорил, вы просто пару сообщений не прочитали:)

RPG
()
Ответ на: комментарий от drBatty

Эмм, потом. Я пользователь линукса, а не гентушник, не люблю вообще много времени тратить на конфигурацию дистра. На одном дистрибутиве сижу годами ибо просто лень обновляться, работает всё что мне нужно - и ладно. И пересобираю что-то только в очень исключительных случаях...

RPG
()
Ответ на: комментарий от drBatty

RPG, вы тоже почитайте про so файлы. Много нового узнаете. Я обещаю! Извините, по-русски нету (ну я не нашёл), в вике тоже.

А, я что-то не понял сначала про что это было. Нет, ну про LD_LIBRARY_PATH я и так знаю, но это неспортивно указывать при запуске всех программ эту переменную, тем более по той статье должно работать и через /etc/ld.so.conf. А когда пересобирается такая базовая вещь как Cairo важно чтобы все от библиотек до программ подхватили именно мою версию, а не от добряков-гентушников, которые хоть бы под 686 собирали, а не 386.

RPG
()
Ответ на: комментарий от drBatty

The addition of integer support in SSE2 made MMX largely redundant, though further performance increases can be attained in some situations by using MMX in parallel with SSE operations.

Вы меня так скоро запутаете. В SSE можно грузить только 4 float, а в SSE2 можно уже полноценно грузить в регистры xmm интовые переменные и вообще всякий хлам.

SSE used only a single data type for XMM registers:
four 32-bit single-precision floating point numbers
SSE2 would later expand the usage of the XMM registers to include:
two 64-bit double-precision floating point numbers or
two 64-bit integers or
four 32-bit integers or
eight 16-bit short integers or
sixteen 8-bit bytes or characters.

Не сбивайте людей с толку:)

RPG
()
Ответ на: комментарий от RPG

RPG

Мда. И что делать? Я так понимаю ему будет плевать на /usr/local/lib покуда есть /usr/lib.

дык уже писал-же!

вам советуют, как я понимаю, поправить /etc/ld.so.conf

ну и перезагрузиться конечно.

RPG

Вот если я собрал программу Васи Пупкина, о которой мейнтейнеры убунту никогда и не слышали, всё будет ок. Но стоит пересобрать Cairo - полезет куча глюков.

маинтейнеры бубунты как-то ведь собирают Cario? Чем вы хуже?

RPG

Анан торт, он про другое вообще говорил, вы просто пару сообщений не прочитали:)

да читал я... Либы берутся из LD_LIBRARY_PATH, а вот бинарники берутся таки из PATH. Дело в том, что либы нужны не только вашему самосборному Gimp'у, но и другим программам. Потому и прописываются прямо в Gimp, вот так

LD_LIBRARY_PATH=/usr/local/lib gimp
при этом загружается самосборный. Системный можно загрузить так:
/usr/bin/gimp

drBatty ★★
()
Ответ на: комментарий от RPG

RPG

Нет, ну про LD_LIBRARY_PATH я и так знаю

странно... А про ldconfig знаете?

RPG

А когда пересобирается такая базовая вещь как Cairo важно чтобы все от библиотек до программ подхватили именно мою версию, а не от добряков-гентушников, которые хоть бы под 686 собирали, а не 386.

тогда прописывайте в /etc/ld.so.conf Странно, что вы этого не знали...

drBatty ★★
()
Ответ на: комментарий от anonymous

RPG

Вы меня так скоро запутаете. В SSE можно грузить только 4 float

да, я сам запутался в этой истории. На самом деле, грузить действительно можно только float, однако, MMX никто не отменял. И в SSE добавились и новые команды для mm регистров. Т.ч. «в SSE» и с целыми можно...

anonymous

перечитай ветку, в котрую лезешь со своми «советами»

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

drBatty ★★
()
Ответ на: комментарий от RPG

А на 32-битах он не будет подменять мне native на i686?

Можно проверить, набрав

gcc -c -Q -march=native --help=target
Выведет опции, которые gcc определит для вашего процессора.

Aneko
()
Ответ на: комментарий от drBatty

понятно, ещё одна ебанашка. откуда вы только берётесь, невозможно вести обсуждение: влезает очередной имбецил, не умеющий читать, и раздаёт свои «поучения»

anonymous
()
Ответ на: комментарий от Aneko

а теперь марш учить матчасть!
[gentoo][use-flags] Про полезность отдельных (комментарий) это для разминки
а для реальных флагов надо смотреть

echo "int main() { return 0; }" |LANG=en gcc `echo тут_ваши_флаги` -v -Q -x c - 2>&1
и
echo "int main() { return 0; }" |LANG=en gcc `echo  -march=native` -v -E -x c - 2>&1

megabaks ★★★★
()
Ответ на: комментарий от Deleted

Пересобрал cairo и движок с твоими флагами, но ничего не изменилось в gtkperf :(

а ничего существенного и не должно меняться :) cairo уже заоптимизирован под самое небалуй в попытках выжать хотя-бы доли процента. engines, мизер. Сам по себе Gtk, по факту большой event-диспетчер, который мало чего вычисляет.

В теории в gtk2 стеке только пересборка Gdk и pango может принести профит с флагами SSE и прочими расширенными инструкциями - там есть массивные переносы битов, альфа-каналы, маски и прочее.

MKuznetsov ★★★★★
()
Ответ на: комментарий от Aneko
-msse                       		[disabled]
-msse2                      		[disabled]
-march=                     		nocona //OMFG WTH???

Вот и все дела. Как раз тот случай, когда я предпочитаю не верить компилятору.

RPG
()
Ответ на: комментарий от MKuznetsov

У 32битной убунту никакими SSE и не пахнет, в результате чего скипятся все ассемблерные вставки в Cairo. Отсюда - прирост производительности, но для 64 бит я думаю будет так как вы и сказали.

engines - некоторые из них не юзают каиро, так что тоже что-то выжать теоретически должен, но я думаю основную лепту внёс Cairo, весь GTK на нем держится вместо с гномом. А GTK как обработчик событий можно было хоть на скриптах писать - никакого критического к производительности кода там практически нет.

RPG
()
Ответ на: комментарий от RPG

просто выделил
а вообще только так можно узнать размер задаваемых кэшей

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Задействовал оба. Оба показали одно и то же. Лучше скажите какой нафиг nocona? Меня надули в магазине в 2004 году?:)

RPG
()
Ответ на: комментарий от RPG

Лучше скажите какой нафиг nocona?

[ megabaks@desktop ] ~ $ man gcc | grep -A3 nocona
           nocona
               Improved version of Intel Pentium4 CPU with 64-bit extensions,
               MMX, SSE, SSE2 and SSE3 instruction set support.

[ megabaks@desktop ] ~ $
megabaks ★★★★
()
Ответ на: комментарий от RPG

configure --prefix=/usr ну что вы в самом деле?

bhfq ★★★★★
()
Ответ на: комментарий от megabaks

У меня лучше всего проц реагирует на core2, а не на какую-то накону. То есть какие-то дольки процента в производительности прибавляет. Однозначно лучше дефолта.

RPG
()
Ответ на: комментарий от RPG

нокона - это просто 64-х битный пре-скот.
http://gcc.gnu.org/PR45483#c3

У меня лучше всего проц реагирует на core2, а не на какую-то накону. То есть какие-то дольки процента в производительности прибавляет. Однозначно лучше дефолта.

-Os пробовал?

bug12309
()
Ответ на: комментарий от bug12309

-Os пробовал?

да. Иногда даже лучше чем O3. Но не всегда

RPG
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.