Sie sind nicht angemeldet.

1

07.06.2006, 00:09

Die CFLAGS - Eure Erfahrungen?

Ich wollte 'mal wissen, was ihr für Erfahrungen mit diversen GCC-Flags gesammelt habt.

Ich hatte 'mal das Flag -mfpmath=sse bei GCC 3.4.4 probiert und es wieder ganz genervt entfernt, weil es halb so schnell kompiliert hatte als ohne.

Bei der jetzigen Version 3.4.6 hab' ich's nochmal probiert und er kompiliert doppelt so schnell...


Wie sieht's bei euch aus?

2

07.06.2006, 08:43

Quellcode

1
CFLAGS="-pipe -g0 -fno-ident -march=athlon64 -O2 -fomit-frame-pointer -ftracer -ftree-vectorize -fforce-addr -mfpmath=sse -maccumulate-outgoing-args -ffast-math"

Schnellerer Kompiliervorganz? Keine Ahnung. Beobachte das nicht so, läuft ja im Hintergrund.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

3

07.06.2006, 11:16

meine Flags:

CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

hm, man gcc (3.4.6) sagt mir zu -mfpmath=sse

Quellcode

1
This is the default choice for the x86-64 compiler.
bedeutet das nicht das es sowiso benutzt wird?

bringt das einen merkbaren Geschwindigkeitsvorteil wenn Programme mit "-mfpmath=sse" compiliert wurden?
AcerExtensa3001WLMi

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »sidious« (07.06.2006, 14:43)


4

07.06.2006, 20:21

Zitat

Original von sidious
hm, man gcc (3.4.6) sagt mir zu -mfpmath=sse

Quellcode

1
This is the default choice for the x86-64 compiler.
bedeutet das nicht das es sowiso benutzt wird?


x86-64 ist 'was anderes als x86. Das eine ist die 64-bit-Variante, das andere die fast 20 Jahre alte 32-bit-Variante.

Sehr schöne Entwicklung, nicht? Dabei sind SPARC, Alpha oder HPPA wahrscheinlich effizienter als der x86-Bullshit, den Intel Jahr für Jahr zusammengefrickelt hat...

5

07.06.2006, 22:12

@sidious
sehr schöne cflags!

@maggu2810
du wirst langsam aber sicher einen qualvollen gentoo tot sterben
du wirst es nicht jetzt und vllt nicht in einem jahr feststellen
aber langsam aber sicher wird sein system instabiel

man spielt mit cflags nicht
alles was man braucht ist
-march=<eure cpu march>
-O2 oder -Os
und -pipe

-fomit-frame-pointer ist laut manpages schon in -O2

-march= regelt alles was für euren cpu/gcc gut ist oder nicht
-O2 tut das restliche

CFLAGS werden im allgemeinen überschätzt
es bringt nicht DEN geschwindigkeitsvorteil bei irgendwas höchstens winzigkeiten auf kosten der stabilität
was ein system wirklich schnell machen kann sind die useflags, je weniger je schneller

meine cflags
CFLAGS="-O2 -march=athlon64 -pipe"

6

07.06.2006, 22:40

Seh ich ähnlich... wobei ich denke, dass Os statt O2 bei älteren Systemen noch zu bevorzugen ist.
Oder überschätze ich das?

Gruß
Psych

7

08.06.2006, 01:18

Hier mal meine

CFLAGS="-march=pentium-m -O3 -pipe -fomit-frame-pointer"
CHOST="i386-pc-linux-gnu"



LG evert

8

08.06.2006, 11:13

@bUscher
Den "tot sterben" (doppelt gemoppelt?) werd ich ganz sicher nicht. Warum auch?

Zitat

man spielt mit cflags nicht

Wer behauptet das?
Das ist für mich soviel wert, wie die Aussage: "never change a running system" - man wäre das langweilig.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

9

08.06.2006, 16:08

Für alle die nicht genau wissen welche Flags für ihr System passen: http://gentoo-wiki.com/Safe_Cflags
localhost,
sweet localhost

10

08.06.2006, 18:56

ist ja OffTopic hier und für alle die den bug nochnicht kennen

http://bugs.gentoo.org/show_bug.cgi?id=74072

so wird auch dein tot aussehen maggu2810 ;-)

11

08.06.2006, 19:09

Mit Gentoo hab' ich in Sachen Kompilieren folgendes gelernt: Jeder Prozessor reagiert auf die CFLAGS anders.

Die besten Erfahrungen konnte ich mit meinem Intel Pentium M machen: Egal mit welchen Flags und welcher Kombination, die Software läuft richtig stabil. Ander dagegen der Intel Xeon: Der geht schon in die Knie, wenn ich ihm Rechenaufgaben an Herrn SSE schicke. Und andere Optimierungen beeindrucken ihn überhaupt nicht. Bzw. er merkt es garnicht. Was mich sehr überrascht hat, denn der Xeon-Prozessor soll ja angeblich speziell für Server entworfen worden sein und auch wegen den riesigen Caches so teuer sein. (Gut, dass ich dafür kein Geld wegschleudern musste...)


Damit ihr's euch besser vorstellen könnt (Ich hab' die Server im Übrigen NICHT zusammengestellt, sondern eine Firma wurde dafür beauftragt - meine Oma hätte es wohl besser gemacht...):

Intel Xeon 2.8 GHz (Server 1) / 3.0 GHz (Server 2)
1 GB DDR-RAM (<= Da hamma den Salat)
2 32 GB SCSI-UW-Festplatten von Seagate (Laut UW soll er bis zu 320 MB/s oder so unterstützen, mit RAID 0 bekomm ich unter Linux gerade müde 30 MB/s. Frage: Muss man da irgendwas speziell konfigurieren?)

Obwohl es vor 2 Jahren im Serverbereich schon DDR II gab, haben die Deppen uns ihren alten Schrott angedreht.


Fazit: Man schont den Geldbeutel und die Nerven, wenn man eine ältere CPU kauft und dafür schnellere Speicherperipherie kauft. Denn der Xeon mit 3 GHz braucht für das gleiche Portage-Update wegen 1GB DDR I doppelt so lang wie mein Notebook mit Pentium M 1.73 GHz und 1 GB DDR II. Und meine Notebook-IDE-Festplatte ist genauso schnell wie das RAID 0 auf dem Server, nämlich 30 MB/s.