Re: CPUTYPE? [WAS: Soundausgabe stockt bei etwas Belastung des Systems]

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 7 May 2007 22:07:00 +0200 (CEST)

Bernd Schwendele wrote:
> Oliver Fromme schrieb:
> > Bernd Schwendele wrote:
> > > FreeBSD defiant.zuhause.xx 6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Sun
> > > Apr 29 01:59:14 CEST 2007
> > > root(at)defiant.zuhause.xx:/usr/obj/usr/src/sys/DEFIANT i386
> > >
> > > Übersetzt mit folgenden Optionen (/etc/make.conf):
> > > CPUTYPE=athlon-xp
> > > CFLAGS= -O -pipe -funroll-loops
> >
> > Ganz schlechte Idee. Damit machst Du Dein System nur
> > unnötig langsamer. Du solltest die CFLAGS-Zeile raus-
> > schmeißen und Dein System neu übersetzen.
> >
> > An den CFLAGS zu drehen ist fast immer ein Fehler.
>
> *SCHOCK* Ok, ich gebe zu davon habe ich 0 Ahnung...

Ein Grund mehr, nicht daran zu drehen. Die Leute, die
die Default-CFLAGS von FreeBSD eingerichtet haben, haben
nämlich mehr als 0 Ahnung davon. ;-)

Der Default unter FreeBSD 6.x/i386 für die CFLAGS lautet
übrigens "-O2 -fno-strict-aliasing -pipe". Ein Fehler,
der auch sehr häufig gemacht wird, ist, nur "-O2 -pipe"
oder ähnliches in /etc/make.conf reinzuschreiben, aber
das "-fno-strict-aliasing" zu unterschlagen, was dazu
führt, das bei einigen Programmen kaputter Code erzeugt
wird.

Faustregel ist, die CFLAGS nicht anzurühren, selbst wenn
man glaubt, dass wüsste, was man tut. Selbst wenn man
die Flags so setzt, dass sie keinen Schaden anrichten,
kann es beim nächsten System-Update, bei dem es evtl.
eine neue Compiler-Version gibt, in die Hose gehen.
Darüberhinaus ist der potentielle Nutzen äußerst gering:
Es gibt nur ganz wenige Einzelfälle, wo man durch Drehen
an den CFLAGS eine meßbare Geschwindigkeitssteigerung
herauskitzeln kann.

Die häufig zu lesende Empfehlung, -finline-functions,
-funroll-loops, u.ä. einzuschalten, ist auch mit Vorsicht
zu genießen, da sie den Code vergrößern. Viele Programme
werden dadurch eher langsamer, da ihr Working-Set nicht
mehr in den L1- oder L2-Cache passt. Wie es sich auswirkt,
hängt vom jeweiligen Programm ab, vom Prozessor, dem Cache,
der Art der Nutzung des Rechners und anderen Faktoren.
Wenn man wirklich auf jedes winzige Quentchen Geschwindig-
keit angewiesen ist, muss man die fraglichen CFLAGS unter
der eigenen Bedingungen benchmarken, und zwar für jedes
betroffene Programm einzeln. CFLAGS, die für ein Programm
gut funktionieren, können ein anderes wieder abbremsen.

Langer Rede kurzer Sinn: Finger weg von den CFLAGS. :-)

> wollte mein Beastie
> nur einwenig tunen. Das kommt davon, wenn man alles glaubt was "im
> Internet steht" *mit einem weinenden Auge lach*

Tja ...

> Wie wirkt sich die CFLAGS-Zeile denn aus? (Ständige Crashs? Weil, das
> habe ich hier :( )

Das eigentlich eher nicht, zumindest nicht in diesem Fall.
Deine CFLAGS erzeugen lediglich langsameren Code.

> Bringt das Setzen der CPUTYPE was, außer dass ich Kompilate evtl. nicht
> mehr auf meinem alten P3 verwenden kann?

Das kann durchaus etwas bringen. Der Compiler berücksich-
tigt dann das Verhalten des betreffenden Prozessors, d.h.
wie die Verarbeitungs-Pipelines optimal gefüllt werden
usw., und er verwendet ggf. Prefetch-Anweisungen und
ähnliche Dinge, die ältere Prozessoren noch nicht hatten.

Wenn Du Binaries auf mehreren Rechnern gemeinsam benutzen
möchtest, solltest Du den CPUTYPE wählen, der der kleinste
gemeinsame Nenner ist, also z.B. "pentium3", wenn Du die
Binaries auch auf Deinem Pentium-3 verwenden möchtest
(der kennt immerhin schon die SSE-Prefetch-Anweisungen).

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 07 May 2007 - 22:08:07 CEST

search this site