OVH Cloud OVH Cloud

Optimisation lors de la compilation des sources

4 réponses
Avatar
Pham
Bonjour !

Lorsque je compile à partir des sources, quelles options dois-je passer
aux ./configure pour optimiser ?
J'utilise un celeron 430.

Je crois savoir qu'il faut que je passe une option 'MMX' à gcc, mais je
préfère ne pas faire de bêtise et je m'en remets à vous...

Merci !

4 réponses

Avatar
grosnours [FT]
http://www.freehackers.org/

man gcc

cat /proc/cpuinfo pour savoir ce que ton cpu possède comme technologie
(mmx & sse).

les nouvelles versions de gcc (>= 3.2.x) ont de nombreuses options
d'optimisations.

personnellement j'utilise celles ci avec gcc 3.2.3 pour un athlon-4
(bien que certaines soient redondantes) :

CFLAGS="-march=athlon-4 -mfpmath=sse -mmmx -msse -m3dnow -O3 -pipe
-fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop
-frerun-loop-opt -falign-functions=4"
CXXFLAGS="${CFLAGS}"

++ grosnours

Pham wrote:
Bonjour !

Lorsque je compile à partir des sources, quelles options dois-je passer
aux ./configure pour optimiser ?
J'utilise un celeron 430.

Je crois savoir qu'il faut que je passe une option 'MMX' à gcc, mais je
préfère ne pas faire de bêtise et je m'en remets à vous...

Merci !


Avatar
Eddahbi Karim

http://www.freehackers.org/

man gcc

cat /proc/cpuinfo pour savoir ce que ton cpu possède comme technologie
(mmx & sse).

les nouvelles versions de gcc (>= 3.2.x) ont de nombreuses options
d'optimisations.

personnellement j'utilise celles ci avec gcc 3.2.3 pour un athlon-4
(bien que certaines soient redondantes) :

CFLAGS="-march=athlon-4 -mfpmath=sse -mmmx -msse -m3dnow -O3 -pipe
-fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop
-frerun-loop-opt -falign-functions=4" CXXFLAGS="${CFLAGS}"

++ grosnours

Pham wrote:
Bonjour !

Lorsque je compile à partir des sources, quelles options dois-je
passer aux ./configure pour optimiser ?
J'utilise un celeron 430.

Je crois savoir qu'il faut que je passe une option 'MMX' à gcc, mais
je préfère ne pas faire de bêtise et je m'en remets à vous...

Merci !



Ahem, O3 et fomit-frame-pointer, les deux flags à mettre quand on veut
pas envoyer de bug report.

CFLAGS="-march=athlon-xp -msse -mmmx -O2 -pipe -funroll-loops
-frerun-cse-after-loop -frerun-loop-opt -m3dnow -mfpmath=sse"

Pour ma part ;)

J'ai un Athlon XP.

Voila ;),
ThE_TemPLaR


Avatar
Zoupla
Eddahbi Karim - :


Ahem, O3 et fomit-frame-pointer, les deux flags à mettre quand on veut
pas envoyer de bug report.

CFLAGS="-march=athlon-xp -msse -mmmx -O2 -pipe -funroll-loops
-frerun-cse-after-loop -frerun-loop-opt -m3dnow -mfpmath=sse"

Pour ma part ;)

J'ai un Athlon XP.



Et tu as noté de gros écart de performances selon que tu utilises ou pas
les flags d'optimisation ?

Avatar
J. Mayer
On Tue, 29 Jul 2003 18:49:53 +0000, Zoupla wrote:

Eddahbi Karim - :


Ahem, O3 et fomit-frame-pointer, les deux flags à mettre quand on veut
pas envoyer de bug report.

CFLAGS="-march=athlon-xp -msse -mmmx -O2 -pipe -funroll-loops
-frerun-cse-after-loop -frerun-loop-opt -m3dnow -mfpmath=sse"

Pour ma part ;)

J'ai un Athlon XP.




Tout cela semble redondant:
CFLAGS="-march=athlon-xp -O2 -pipe -funroll-loops -frerun-cse-after-loop
-frerun-loop-opt"
est suffisant:
gcc sait qu'un Athlon XP a le MMX, le 3Dnow, le 3Dnow etendu,
le SSE et le SSE2.
Et il choisira mieux que toi le fpmath...
A priori, je crois que -march est deprecated, mais encore supporte.
Il faut utiliser, si je me souviens bien -mcpu et -mtune.