View previous topic :: View next topic |
Author |
Message |
Jean-Francois Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/4961521743f1855063b1ac.gif)
Joined: 24 Sep 2002 Posts: 191 Location: Grenoble
|
Posted: Wed Aug 20, 2003 10:17 am Post subject: [Optimisation] paramètres de compilation: Attention !! |
|
|
Salut,
suite à la lecture de ce site,
http://home.comcast.net/~jcunningham63/linux/GCC_Optimization_poseidon.html
j'ai essayé d'optimiser un peu plus mes paramètres de cmpilation pour mon P4 2GHz. J'ai juste ajouté les 2 dernières options à mes paramètres habituels.
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer -ffast-math -malign-double
Bilan après quelques jours d'utilisation et un ou deux updates par ci par là, j'ai commencé à avoir des soucis avec quelques applis (evolution se plaignait d'une librairie bonobo notamment). Je les ai recompilé, puis là c'est carrément tout gnome qui est parti en vrille.
Le panel faisait des erreurs de segmentation à tout bout de champ, comme la plupart des applis gnome.
Plus je recompilait les applis plus j'avais des problèmes. D'ailleurs certains composants de gnome ont fini par ne plus se compiler.
Du coup j'ai enlevé ces 2 derniers paramètres, et petit à petit j'ai recompilé toutes les applis que je venais de compiler.
La compilation est allé à terme sans problème à chaque fois (enfin presuqe j'ai pas encore tout à fait finit tout, mais ca va clairement bien mieux).
J'espère que celà suffira à résoudre tout mes problèmes, mais en tout cas le bilan pour moi c'est que l'optimisation des flags de compilation, non merci.
Soyez prudent ![/url] _________________ Jean-Francois
http://bdml.free.fr
BdmL : Astronomie - Jeux de Societe - Linux - Photos |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
xr31Daisy Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/gallery/BaldursGate/baldursgate_edwin.gif)
Joined: 19 Jul 2002 Posts: 326 Location: Paris, France
|
Posted: Wed Aug 20, 2003 11:50 am Post subject: |
|
|
L'auteur avait pourtant mis un warning à propos de -malign-double dans sa page sur les flags, comme quoi c'était un truc à risque.
Il propose d'ailleurs 3 réglages, par ordre de risque ( et d'optimisation ) croissants :
Code: | -march=pentium4 -O3 -msse2 -mfpmath=sse,387 -mmmx
-march=pentium4 -O3 -ffast-math -mfpmath=sse,387 -mmmx
-march=pentium4 -O3 -ffast-math -malign-double -msse2 -mmmx |
J'ai utilisé la 2ème ligne, n'ayant pas tellement confiance dans -malign-double. Et je n'ai aucun problème. ( mais je n'ai pas essayé de mesurer les améliorations de vitesse par moi-même. ) _________________ #include "pictures.h" |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Senso Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/1332810045407a08df1b3e0.jpg)
Joined: 17 Jun 2003 Posts: 250 Location: Montreal, Quebec
|
Posted: Wed Aug 20, 2003 2:06 pm Post subject: |
|
|
Pourtant, je trouve que
Code: | CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer | est déjà pas mal optimisé comme ça... Perso, j'ajoute -funroll-loops mais c'est pas toujours nécéssaire. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Leander256 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/12696515763f31ef9a46a07.jpg)
Joined: 05 Jul 2003 Posts: 910 Location: Singapour
|
Posted: Wed Aug 20, 2003 2:26 pm Post subject: |
|
|
Ceci a déjà été discuté dans plusieurs threads en anglais mais je ne les retrouve pas, et de toute façon ça ne peut pas faire de mal de le répéter:
Quand vous ajoutez l'option -march=xxx, gcc va automatiquement rajouter le support de mmx, 3dnow, sse et sse2 (ceux supportés par le processeur uniquement). La preuve par l'exemple, je vais compiler un programme révolutionnaire.
Sans optimisation:
Code: | prog@glorfindel prog $ gcc -v helloworld.c -o test
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/cc1 -lang-c -v -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ helloworld.c -quiet -dumpbase helloworld.c -version -o /tmp/cc37aGjE.s |
Avec optimisation:
Code: | prog@glorfindel prog $ gcc -v -march=athlon-xp helloworld.c -o test
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/cc1 -lang-c -v -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__athlon -D__athlon__ -D__athlon_sse__ -D__tune_athlon__ -D__tune_athlon_sse__ -D__SSE__ -D__MMX__ -D__3dNOW__ -D__3dNOW_A__ helloworld.c -quiet -dumpbase helloworld.c -march=athlon-xp -version -o /tmp/ccr7Cvmg.s |
Bien sûr ce n'est pas pénalisant, mais toujours bon à savoir si vous pensez désactiver le support de mmx en enlevant -mmmx alors que vous gardez -march.
[EDIT] juste pour préciser que ce sont des extraits de l'affichage produit, il y a quelques lignes en plus normalement |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|