Флаги в make.conf
S-anches 3 сентября, 2006 - 13:51
У меня Pentium 4 Prescott 3 Ghz с поддержкой HT. Помагите выставить правильные флаги для самой хорошей оптимизации и работы. Сейчас стоит: CFLAGS="-march=prescott -O2 -pipe"
»
- Для комментирования войдите или зарегистрируйтесь
Под какой
Под какой gcc?
так на вскидку не скажу но попробуй спросить Alexyx
у него сейчас такое же железо....
_________________
Gentoo GNU/Linux 2.6.17 GCC 4.1.1 Dual Xeon
gcc-4.1.1 сейчас
gcc-4.1.1 сейчас стоит. Профиль i686-pc-linux-gnu-4.1.1
Флаги в make.conf
Pentium 4 Prescott 2.8 Ghz
Сегодня перешел на gcc-4.1.1, добавил "-ftree-vectorize"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer -ftree-vectorize"
И пересобрал всю систему
emerge -e system && emerge -e world
Теперь все летает на около световых скоростях :)
А LDFLAGS="-Wl,-O1
А LDFLAGS="-Wl,-O1 -Wl,--sort-common" вот это мне оставить или лучше убрать?
Читали доки? #
Читали доки?
# Host and optimization settings means optimize code for the particular type of CPU without means to take full advantage of the ABI and instructions
# ==============================
#
# For optimal performance, enable a CFLAGS setting appropriate for your CPU.
#
# Please note that if you experience strange issues with a package, it may be
# due to gcc's optimizations interacting in a strange way. Please test the
# package (and in some cases the libraries it uses) at default optimizations
# before reporting errors to developers.
#
# -mcpu=
# breaking compatibility with other CPUs.
#
# -march=
# for the particular CPU; this will break compatibility with older CPUs (for
# example, -march=athlon-xp code will not run on a regular Athlon, and
# -march=i686 code will not run on a Pentium Classic.
#
# CPU types supported by gcc version:
# (Higher versions include the targets from older ones,
# those listed on the same line are equivalent.)
# === >=gcc-2.95
# i386 Original Intel's i386.
# i486 Intel's i486. (No scheduling implemented.)
# i586, pentium Intel Pentium with no MMX support.
# pentium-mmx Intel PentiumMMX based on Pentium core with MMX.
# i686, pentiumpro Intel PentiumPro.
# === >=gcc-3.2
# k6 AMD K6 with MMX.
# k6-2, k6-3 AMD K6 with MMX and 3dNOW!.
# pentium2 Intel Pentium2 based on PentiumPro with MMX.
# pentium3 Intel Pentium3 based on PentiumPro with MMX and SSE.
# pentium4 Intel Pentium4 with MMX, SSE and SSE2.
# athlon, athlon-tbird AMD Athlon with MMX, 3dNOW!, enhanced 3dNOW!
# and SSE prefetch.
# athlon-4, athlon-xp, athlon-mp AMD Athlon with MMX, 3dNOW!, enhanced
# 3dNOW! and full SSE.
# === >=gcc-3.3
# winchip-c6 IDT Winchip C6, i486 with MMX.
# winchip2 IDT Winchip2, i486 MMX and 3dNOW!.
# c3 Via C3 with MMX and 3dNOW! (No scheduling implemented.)
# === >=gcc-4.1
# c3-2 Via C3-2 with MMX and SSE. (No scheduling implemented.)
# pentium-m Low power version of Intel Pentium3 with MMX, SSE, SSE2.
# Used by Centrino notebooks.
# prescott Intel Pentium4 with MMX, SSE, SSE2 and SSE3.
# nocona Intel Pentium4 with 64-bit extensions, MMX, SSE, SSE2
# and SSE3.
# k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64.
# (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and
# 64-bit extensions.)
#
# Gentoo Linux 1.2 and below used gcc-2.95*
# Gentoo Linux 1.4 and 2004.* had gcc-3.2
# Gentoo Linux 2005.1 through 2006.0 use gcc-3.3
# Gentoo Linux 2006.1 has gcc-4.1
---------------------------------------------
Intel P4/Xeon Extended MCE MSRs 3200 x2 SMP IBM Xseries 346 4Gb/chip video ATI Radeon QY 8Mb/
Portage 2.1.3.7 (default-linux/x86/2007.0, gcc-4.2.0, glibc-2.6.1-r0, 2.6.22-gentoo-r5 i686)
Открыл америку....
Веришь ли? Это каждый ламер читал.
-free-vectorise попробую. По личному опыту - на AMD64 безопасно и полезно включать -mfpmath=sse -m128bit-long-double.
-free-vectorize имеет
-free-vectorize имеет извесные проблемы с zlib.
ты хотябы багзиллу рыл перед применением флагов...
и Ruby с ним не собирается
и ещё что-то тоже не собирается :)
gcc
Вот хорошая дока по gcc на русском. Правда устарела чуть-чуть, но советую почитать.
Ага.
Устарела она не чуть-чуть, а КОНКРЕТНО. И в man gcc то же самое написано.
В этой багзилле поиск какой-то треш выдаёт.
zlib скомпилилось. Ruby не хочет как с флагом, так и без него. Ну да и пёс с ним.
Какой ещё софт глючит от флага? А то прибавка скорости от него конкретная.
Я нашёл 2 жалобы на этот флаг. У обоих перцев там кроме него ещё было понаверчено дофига всего. Возможна несовместимость между двумя флагами. к -ftree-vectorize обязательно нужен -ftracer.
zlib то
zlib то компилится, только вот некоторый соыт после этого скегфолтится местами.
Разве -mfpmath=sse и
Разве -mfpmath=sse и -m128bit-long-double не включены по умолчанию для x86_64? Может потому их "безопасно и полезно включать"?
-ftree-vectorize если
-ftree-vectorize
если компилить с этим флагом zlib, то вместо запуска firefox сегфолтится.
больше побочных эффектов не нашел.