LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

что будет быстрее: -Ofast или -Os?

-Ofast включает все оптимизации -O3 + некоторые не особо безопасные оптимизации.

-Os просто включает все оптимизации -O2 кроме тех, которые раздувают финальный размер исполняемого файла.

генту вики всё ещё рекоммендует -О2

И правильно делает. К -O2 обычно добавляют -march конкретно для CPU и всякие vectorize-флажки.

про flto … вообще ни слова.

https://wiki.gentoo.org/wiki/GCC_optimization#Link_Time_Optimization_.28LTO.29

так как собрать самую быструю плазму?

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

Помнится мне забавный случай на ЛОРе когда какой-то неофит-джентушник натолкал всех этих -O3 и -march и на выходе в итоге p7zip в его Gentoo работал в два раза медленнее такого же p7zip который собрали мейнтейнеры Fedora (тестировалось на одном железе, у него был дуалбут с Fedora). Другой случай – когда очередной джентушник так наооптимизировал себе ядро, что отключил SMP и полгода-год сидел на одном ядре CPU, жалуясь на нехорошую Mozilla, которая добавила Rust и компиляция Firefox выросла на несколько часов.

Надо бы добавить ссылки на эти эпичные треды на Лурк, если их уже не добавили. Ну и да:

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

CFLAGS="-march=core-avx2 -mcpu=core-avx2 -pipe -O9 -frename-registers -fno-thread-jumps -fno-omit-frame-pointer -mieee-fp -finline-limit=600 -mno-push-args -fno-signaling-nans -malign-double -fno-defer-pop -fno-cprop-registers -maccumulate-outgoing-args -fno-if-conversion2 -fno-gcse -fno-expensive-optimizations -fno-optimize-sibling-calls -fno-regmove -fno-schedule-insns"

В результате сего действа задрот как правило получает +5% к общей производительности системы и 100500 непонятных невоспроизводимых багов, после чего лезет в интернеты излить свою ненависть. Официальный мануал рекомендует безопасные наборы флагов, которые выглядят довольно скромно [2]. А лучше вообще включить только только -march=native и -O2, а дальше компилятор сам разберётся.

Gentoo – Lurkmore

Исходная версия EXL, :

что будет быстрее: -Ofast или -Os?

-Ofast включает все оптимизации -O3 + некоторые не особо безопасные оптимизации.

-Os просто включает все оптимизации -O2 кроме тех, которые раздувают финальный размер исполняемого файла.

генту вики всё ещё рекоммендует -О2

И правильно делает. К -O2 обычно добавляют -march конкретно для CPU и всякие vectorize-флажки.

про flto … вообще ни слова.

https://wiki.gentoo.org/wiki/GCC_optimization#Link_Time_Optimization_.28LTO.29

так как собрать самую быструю плазму?

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

Помнится мне забавный случай на ЛОРе когда какой-то неофит-джентушник натолкал всех этих -O3 и -march и на выходе в итоге p7zip в его Gentoo работал в два раза медленнее такого же p7zip который собрали мейнтейнеры Fedora (тестировалось на одном железе, у него был дуалбут с Fedora). Другой случай – когда очередной джентушник так наооптимизировал себе ядро, что отключил SMP и полгода-год сидел на одном ядре CPU, жалуясь на нехорошую Mozilla, которая добавила Rust и компиляция Firefox выросла на несколько часов.

Надо бы добавить ссылки на эти эпичные треды на Лурк, если их уже не добавили.