LINUX.ORG.RU

[Gentoo][BFQ]Парочка вопросов


0

1

Первый: нужно ли добавлять в CFLAGS mmx, а также sse, если указан sse2/3, т.е. наследуются ли предыдущие флаги? Вот нынешний:

CFLAGS="-march=pentium4 -O2 -pipe -msse2"

Таки какую цифру указывать в MAKEOPTS? Собирался поставить BFS и вот что вычитал в FAQ, что несколько противоречит хэндбуку:

When compiling software, do not use more jobs
than you have CPUs! So make -j2 on dual core, -j4 on quad core and so on.

Имею одноядерный процессор на Northwood'е. И да, был бы рад советам, связанным с BFS и его установкой.

★★★★★

-mmmx
да, нужно, если на самом деле хотите его включить,
хотя более продуктивным вариантом будет использовать вместо него
-mfpmath=sse,387

в makeopts на одноядерном - 2 , обычная рекомендация для C - cores+1
для C++ - =cores

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

Т.е. вот так?

CFLAGS="-march=pentium4 -O2 -pipe -mfpmath=sse,387 -msse2 -j2
CXXFLAGS="-march=pentium4 -O2 -pipe -mfpmath=sse,387 -msse2 -j1"
Lighting ★★★★★ ()
Ответ на: комментарий от Lighting

CXXFLAGS="-O2 -march=pentium4 -msse2 -mfpmath=sse,387"
CFLAGS=«${CXXFLAGS} -pipe»
MAKEOPTS="-j2"
PORTAGE_NICENESS=12

-j в флаги компилятора не вставить )

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

если не планируется отладка - в флаги еще хорошо добавить
-fomit-frame-pointer , увеличивает производительность за счет +1 регистра, но gdb будет выдавать малоинформативные backtrace

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

я правильно понимаю, что от -mmmx и -mfpmath вместе толку не будет?

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

только для -mfpmath=sse,387

регистры FPU 80387 и регистры MMX на самом деле общие, мне кажется (если кто считает иначе - хочется узнать почему), что эффект от расширения регистров для математики будет больше чем эффект от возможного использования mmx инструкций, тем более без -ftree-vectorize,
хотя может быть я тут и неправа и лучше совместно использовать -mfpmath=sse,387 и -mmmx.

В любом случае на x86 стоит вписывать в флаги -mfpmath=sse или
-mfpmath=sse,387 ( подробности см в man gcc : -mfpmath )

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

Спасибо большое. Так и думал, что ответ найдётся именно у тебя.

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

по поводу BFS или BFQ не совсем поняла в чем вопрос)
BFS (планировщик процессора) или BFQ (планировщик IO) ?

просто накладываете патч и собираете, если понравится как работает - оставляете, нет - откатываете.

Sylvia ★★★★★ ()

>нужно ли добавлять в CFLAGS mmx, а также sse, если указан sse2/3, т.е. наследуются ли предыдущие флаги?

-msse* нужно, достаточно добавить только старший из того что поддерживается

P4 - -msse2
P4 Prescott - (pni) - -msse3
Core2 Conroe - -mssse3 ( три буквы s )
Core2 Penryn - -msse4.1
i7 (Nehalem) - -msse4
только для AMD - -msse4a , -msse5
для последующих процессоров Интел -mavx

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

Я говорил именно про BFQ. Особенно интересны было узнать про это:

Configure your kernel with 1000Hz, preempt ON and disable dynamic ticks.

Что кроме этого можно включить/отключить для получения больше производительности?

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

т.е. как раз про BFS

S - scheduler планировщик задач
Q - queue - очередь IO

документация по тюнингу тут
http://ck.kolivas.org/patches/bfs/sched-BFS.txt
я ничего не настраивала,
вот только конфигурация ядра с точностью до наоборот, CONFIG_NOHZ=y (т.е. динамический таймер включен), отзывчивость на атоме повыше чем с CFS (обычный планировщик) или BFS+1000Hz

PREEMPT - да, я и без BFS его включаю.

вообщем тут скорее личные впечатления после установки,
schedtool обязательно стоит поставить, будет доступна опция -I (SCHED_ISO) , что дает процессам пользователя мягкий realtime режим (в -ck есть патч для того чтобы X серверу вешался auto iso)

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

ps: на одноядерном стоит наверное смотреть на rr_interval

по умолчанию стоит 6 мс, с учетом того что физиологично восприятие событий 7 и более мс, т.е. процесс будет занимать меньше чем пользователь заметит что что-то подвисло, на 1 ядре наверное если не устроит отзывчивость, то стоит перевести на 3-4 мс (?)

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

Ещё раз спасибо за объяснения. Пойду тогда пересобирать ядро.

PS А где находится опция rr_interval? Так и не смог найти.

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

rr_interval

There is only one «scheduler» tunable, the round robin interval. This can be
accessed in

   /proc/sys/kernel/rr_interval

The value is in milliseconds, and the default value is set to 6 on a
uniprocessor machine, and automatically set to a progressively higher value on
multiprocessor machines.

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

не совсем, -m30387 это флаг разрешения или запрета использования fpu,
он по умолчанию включен

$cc -fverbose-asm -mfpmath=sse,387 -msse2 -Q --help=target|grep fpmath
-mfpmath= sse,387


-mfpmath определяет на каких регистрах обсчитывать математику,
вариант по умолчанию для x86 - 387, т.е. математический сопроцессор (8 80 битных регистров разделяемых с MMX регистрами на Pentium-MMX и выше)

вариант по умолчанию для x86_64 - sse (там всегда есть SSE2 хотя бы)
и рекомендуемый же вариант для процессоров с SSE2 (можно и с SSE, но там были нарекания на точность вычислений) - 8 128 битных регистров
-mfpmath=sse требует явного включения на x86 (-mfpmath=sse) и разрешения SSE ( -msse2 например )

комбинированый вариант (не рекомендуется на GCC < 4.3) -mfpmath=both или -mfpmath=sse,387 будут использоваться 8 SSE регистров и 8 регистров FPU, т.е. доступными для математики будут 16 регистров

Впрочем, ежели кто-то собирается серьезно обсчитывать математику, соберите и так и этак и все вместе и посмотрите производительность ) На реальной задаче может оказаться все несколько иначе чем в теории.

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