View previous topic :: View next topic |
Author |
Message |
c07 Veteran
Joined: 25 Oct 2002 Posts: 1091
|
Posted: Mon Oct 20, 2003 10:25 pm Post subject: |
|
|
hoschi wrote: | deswegen nochmal:
wurde dort oben mit sse2 kompiliert? |
Probier es halt einfach mit was aus, wo es einen Unterschied macht:
Code: | ~/tmp $ echo "int main() { return 9.9 * rand(); }" > t.c
~/tmp $ gcc -O3 -march=pentium4 -o a.out t.c
~/tmp $ gcc -O3 -march=pentium4 -mno-sse2 -o b.out t.c
~/tmp $ diff a.out b.out
Files a.out and b.out differ |
|
|
Back to top |
|
|
deepthought Guru
Joined: 04 Apr 2003 Posts: 321 Location: icbm://5131''N:0710''E
|
Posted: Tue Oct 21, 2003 3:27 pm Post subject: |
|
|
Donnergurgler wrote: | Ich würde den CFLAGS noch "-s" hinzufügen.
man gcc:
-s Remove all symbol table and relocation information from the exe-
cutable
Meine Flags:
CFLAGS="-s -march=k6-3 -O2 -pipe -m3dnow -mmmx"
CXXFLAGS="${CFLAGS}"
Just my 2 zsents. |
Das ist (für alles, was mit emerge gebaut wird) überflüssig. portage/emerge entfernen sowieso alle Debug-Symbole aus dem Objektcode (es rauscht als "stripping <irgendwas" an einem vorbei). Man kann das Gleiche auch mit Code: | strip --strip-debug |
erreichen.
Viele Grüße,
Alexander _________________ Out of loyalty to its disregarded comrades, this message feels free to ignore the reader.
Registered Linux User #317705 |
|
Back to top |
|
|
hoschi Advocate
Joined: 19 Jul 2003 Posts: 2517 Location: Ulm, Germany, Europe
|
Posted: Tue Oct 21, 2003 4:43 pm Post subject: |
|
|
c07 wrote: | hoschi wrote: | deswegen nochmal:
wurde dort oben mit sse2 kompiliert? |
Probier es halt einfach mit was aus, wo es einen Unterschied macht:
Code: | ~/tmp $ echo "int main() { return 9.9 * rand(); }" > t.c
~/tmp $ gcc -O3 -march=pentium4 -o a.out t.c
~/tmp $ gcc -O3 -march=pentium4 -mno-sse2 -o b.out t.c
~/tmp $ diff a.out b.out
Files a.out and b.out differ |
|
er gibt mir nach diff keine antwort, sind die datein damit gleich
übrigens: danke für den genialen tipp _________________ Just you and me strogg! |
|
Back to top |
|
|
c07 Veteran
Joined: 25 Oct 2002 Posts: 1091
|
Posted: Tue Oct 21, 2003 4:54 pm Post subject: |
|
|
Wenn die Dateien gleich sind, kann das natürlich auch nur heißen, dass gcc sowieso keine Veranlassung gesehen hat, SSE2 zu benutzen. Deshalb in diesem Fall -msse2 und -mno-sse2 gegenchecken und gegebenenfalls die Testdatei ein bisschen komplizierter machen, bis es da einen Unterschied gibt. Das geht natürlich analog mit allen anderen Optionen. |
|
Back to top |
|
|
foxtrott n00b
Joined: 23 Oct 2003 Posts: 2
|
Posted: Thu Oct 23, 2003 10:58 pm Post subject: |
|
|
Ich möchte mein System von stage1 aus komplett selber ertstellen.
Nun haben mich die Diskussionen hier über die CFLAGS ein wenig verunsichert, welche ich nehmen soll. Also habe ich mal in ein fertiges stage2 bzw. stage3 Archiv, das man sich von www.gentoo.org herunterladen kann, angeschaut. In der dortigen make.conf werden die CFLAGS so angegeben:
Code: | CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -pipe" |
Und da das runterladbare stage-Archiv ausdrücklich auf stbilität konfiguriert wurde, kann ein O3 doch nicht so verkehrt sein, oder?
Meine geplanten CFLAGS sind:
Code: | CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -fomit-frame-pointer -falign-functions=4 -fforce-addr -pipe"
|
Irgendwelche Einwände, oder Tips von Leute die mehr Erfahrung mit Gentoo haben als ich?
mfg aus MeckPom |
|
Back to top |
|
|
hoschi Advocate
Joined: 19 Jul 2003 Posts: 2517 Location: Ulm, Germany, Europe
|
Posted: Sun Feb 22, 2004 12:11 pm Post subject: |
|
|
ich würde die nehmen, erhebe aber keine garantie:
CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe"
O2=kleinerer code (da freut sich der cpu-cache), kürzerer compiler zeit, theoretische chance auf weniger compiler-fehler
O3=braucht länger zum kompilieren, soll manchmal leicht instabil werden können (ist glaub ich sehr subjektiv), größerer code
-march=pentium4 x86-686 +mmx +sse +sse2
funroll und pipe sind einfach, äh, "beliebt"
-funroll-all-loops, wäre noch erwehnenswert, manachmal hilfts, aber normaller weiße wird der code nur größer...
das problem beim selber kompilieren ist, das fast jedes packet eigentlich andere settings benötigen würde (die müsste man aber erst wissen und lernen und zweitens ständig ändern)
edit: bissel spät dran _________________ Just you and me strogg! |
|
Back to top |
|
|
arkanlor n00b
Joined: 06 Jan 2004 Posts: 30
|
Posted: Mon Feb 23, 2004 11:01 am Post subject: |
|
|
hatte mit -O3 und gcc 3.2.3 probleme, segfault bei xchat-2. dito bei cdrecord und anderen progs. |
|
Back to top |
|
|
gentoo_neuling n00b
Joined: 20 Feb 2004 Posts: 32
|
Posted: Tue Feb 24, 2004 2:06 pm Post subject: |
|
|
hi,
ich bin immernoch am sourcen zusammenziehn werde aber hoffentlich am we anfangen können mit installation.
habe unter
http://gentoo.slinky.surrey.sfu.ca/cflagcollect/results.php
ne liste gefunden mit optimierungen.
kann mir jemand sagen wie sinnvoll unten das ist ?
Code: |
-march=athlon-xp -mmmx -msse -m3dnow -freorder-blocks -fprefetch-loop-arrays -O3 -pipe
|
prozessor ist athlon xp 2100+
besser -O2?
ich wollte mein erstes gentoo nich gleich unstabil haben, deshalb frag ich lieber noch mal nach |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Tue Feb 24, 2004 3:17 pm Post subject: |
|
|
Ich fürchte, keiner wird dir mit 100%iger Sicherheit sagen können, ob deine Flags immer funktionieren werden. Entweder du probierst es mal aus oder du hälst dich an die sicheren Flags (siehe Link auf Seite 1 dieses threads) von freehackers.org. Mit denen treten meines Wissens wirklich nur ganz selten Probleme auf. |
|
Back to top |
|
|
Gekko l33t
Joined: 29 Oct 2002 Posts: 773
|
Posted: Tue Feb 24, 2004 5:07 pm Post subject: |
|
|
Dem kann ich mich hier nur voll und ganz anschliessen,
mit den Flags von Freehackers hatte ich noch nie Probleme.
Ich habe mehrere Stage1 auf verschiedenen Architekturen hinter mir, und nur bei einem Rechner Probleme gehabt - das allerdings aufgrund eines defekten Hauptspeichermoduls.
LG, Gekko |
|
Back to top |
|
|
hoschi Advocate
Joined: 19 Jul 2003 Posts: 2517 Location: Ulm, Germany, Europe
|
Posted: Tue Feb 24, 2004 11:14 pm Post subject: |
|
|
CHOST="i686-pc-linux-gnu"
# Host and optimization settings
# ==============================
#
#......
........
.........
#
# Decent examples:
#
#CFLAGS="-mcpu=athlon-xp -O3 -pipe"
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
# If you set a CFLAGS above, then this line will set your default C++ flags to
# the same settings.
CXXFLAGS="${CFLAGS}"
bei cxxflags brauch ich ja nichts mehr wegen $, habs nimmer ganz in erinnerung (doch schon länger her )
edit:
wie blöd kann man sein, da stehts doch _________________ Just you and me strogg! |
|
Back to top |
|
|
gentoo_neuling n00b
Joined: 20 Feb 2004 Posts: 32
|
Posted: Wed Feb 25, 2004 8:55 am Post subject: |
|
|
jau dann werd ich erstmal die experimente lassen.
freehackers ist im moment tot aber vieleicht kommen die ja im laufe des tages wieder on
mfg gentoo_neuling |
|
Back to top |
|
|
Michael_B n00b
Joined: 04 Mar 2004 Posts: 9 Location: Germany
|
Posted: Sun Mar 07, 2004 6:32 pm Post subject: |
|
|
Es gibt nicht "die besten Flags ueberhaupt".
Ich habe af meinem Via C3 Nehemiah zum Beispiel weder -O2 noch -O3 im Einsatz, sonder -Os. Das gibt den kleineren Code und daher bei so wenig Cache das insgesamt schnellere Programm. Mit -O2 ist der Unterschied sehr gering, aber bei -O3 ist alles wesentlich langsamer. Ursache dabei ist das loop unrolling. Dabei kommt es dann halt oefter mal vor, dass die "ausgerollte" Schleife nicht mehr komplett in den Cache passt. Das kostet dann natuerlich jede Menge Strafzyklen.
Also, immer den Prozessor im Auge behalten, wenn man ueber die Flags nachdenkt. Bei kleinerem Cache eher an -Os oder -O2 denken. Bei Mega-Caches ist aber wohl -O3 die erste Wahl. _________________ =======================
Via Epia M10000 Nehemiah
Gentoo 1.4 mit Kernel 2.4.24-epia1 |
|
Back to top |
|
|
sarahb523 Guru
Joined: 10 Mar 2004 Posts: 423 Location: Berlin
|
Posted: Wed Mar 17, 2004 8:04 pm Post subject: suche flags |
|
|
tja leider ist mein system jetzt schon fertig kompiliert und ich hab doch sowas wie die flags vergessen
Ich habe von der ganzen optimierung noch nich so den plan. Ich denke das ich bei meinem Rechner noch einiges rausholen kann.
cpu: Dual 433 MHz Celeron (die alten celerons)
Kann mir jemand sagen wie dazu das --march=? flag ist und wie man generelle smp unterstützung reinkompiliert?
thx
sarah
[/b][/quote] |
|
Back to top |
|
|
reyneke Guru
Joined: 09 Jan 2004 Posts: 542 Location: Augsburg / Germany
|
Posted: Fri Apr 09, 2004 3:50 pm Post subject: |
|
|
Hi,
bin auch eher Noob, was CFLAGS angeht, deshalb würde mich interessieren, ob diese Flags für einen "Mobile Intel(R) Pentium(R) 4 - M CPU 2.20GHz" (/proc/cpuinfo) Sinn machen:
Quote: |
CFLAGS="-march=pentium3 -mcpu=pentium4 -O2 -finline-functions -falign-jumps=5 -falign-loops=5 -falign-functions=64 -pipe"
|
Ich hab sie aus dem Howto von pi-cubic für seinen Toshiba-Lappie, der die gleiche CPU wie meiner haben dürfte. Bislang fahre ich eigentlich ganz gut damit, obwohl etwas Geschwindigkeit nicht schlecht wäre (allerdings nicht auf Kosten der Stabilität). Wäre es deshalb vielleicht besser, sich auf ein
Quote: |
CFLAGS="-march=pentium3 -mcpu=pentium4 -O2|3 -pipe"
|
zu beschränken?
Ich nehme an, "-march=pentium4" ist noch immer nicht zu empfehlen?
Gruß,
reyneke. |
|
Back to top |
|
|
darksaidin Apprentice
Joined: 04 Oct 2003 Posts: 150
|
Posted: Sat Apr 10, 2004 12:33 pm Post subject: |
|
|
Michael_B wrote: | Ich habe af meinem Via C3 Nehemiah zum Beispiel weder -O2 noch -O3 im Einsatz, sonder -Os. Das gibt den kleineren Code und daher bei so wenig Cache das insgesamt schnellere Programm. |
Hast du das mal getestet? Wir sollten für die Uni vor kurzem ein paar Parameter vergleichen (gehörte zu einer Übung...) und was bei -Os rauskam war alles andere als schneller - wobei das natürlich nicht auf einem C3 war.
Wir hatten dazu ein simplen Primzahlgenerator geschrieben und der war mit -O etwa doppelt so schnell wie mit -Os. -O2 oder -O3 machten kaum messbare Unterschiede zu -O. Natürlich ist das kein sehr realitätsnaher Benchmark, aber trotzdem sollte das Ergebnis tendeziell richtig sein - zumindest für meine AthlonXp |
|
Back to top |
|
|
Stone Guru
Joined: 11 Mar 2003 Posts: 352
|
Posted: Wed May 26, 2004 9:40 pm Post subject: |
|
|
kann mir mal wer kurz die unterschiede von Os, O2 und O3 erklären?
ich verwende -march=athlon-xp -Os -funroll-loops -pipe -fomit-frame-pointer.
cpu ist ein amd xp 1600+ palio kern |
|
Back to top |
|
|
sirro Veteran
Joined: 20 Jul 2003 Posts: 1472 Location: aachen.nrw.de.eu
|
Posted: Wed May 26, 2004 9:43 pm Post subject: |
|
|
Stone wrote: | kann mir mal wer kurz die Unterschiede von Os, O2 und O3 erklären? |
man gcc? |
|
Back to top |
|
|
ian! Bodhisattva
Joined: 25 Feb 2003 Posts: 3829 Location: Essen, Germany
|
Posted: Sun Jun 06, 2004 4:55 pm Post subject: |
|
|
detached _________________ "To have a successful open source project, you need to be at least somewhat successful at getting along with people." -- Daniel Robbins |
|
Back to top |
|
|
|