Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[chat]Plus jamais -O3
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Dominique_71
Veteran
Veteran


Joined: 17 Aug 2005
Posts: 1878
Location: Switzerland (Romandie)

PostPosted: Sat Sep 23, 2006 9:47 pm    Post subject: [chat]Plus jamais -O3 Reply with quote

Sous 2006.0 et gcc3.4.5, j'avais les flags suivants:
Code:
CFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer -fforce-addr -fno-ident -ftracer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--sort-common"

Même open office compilait avec ça. Le -fforce-addr était obligatoire avec -O3 pour que des programmes scientifiques (avec beaucoup de fonctions mathématiques) non seulement compilent, mais donnent aussi des résultats corrects à l'éxécution. Le résultat était des progammes pas plus rapides qu'avec
Code:
CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
, mais plus gros. Et des temps de compilation effarants. 25 heures pour compiler oofice avec un P4 à 2,4 GHz. A la place de 14 heures avec gcc-4.1.1 et -O2 comme ci-dessus.

Entre les deux, j'ai essayé
Code:
CFLAGS="-O2 -march=pentium4 -pipe -fweb -ftracer -ftree-vectorize -fomit-frame-pointer -momit-leaf-frame-pointer -fno-ident"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--sort-common"
sur une nouvelle 2006.1 install. Le résultat était terrible. J'installe le système de base, fait une stage 3 à 1 install avec ces flags, installe xdm, gdm, fluxbox et xfce4.

xdm fonctionnait de même que des parties de fluxblx, quand à gdm et xfce, ils plantaient lamentablement au démarrage. J'ai donc réinstallé depuis le scratch. Heureusement que j'avais une partition libre pour cet essai. J'avais bien posé la question sur ces flags, mais la réponse est arrivée trop tard. branch target load opt ...not intended to be run twice

En conclusion, je suis revenu à des flags surs. Le temps de lancement d'ooffice est ridiculement court si je le compare avec mon ancienne install. Et pout les programmes moins lourd, je n'ai pas remarqué de différence, à part en faisant des tests et mis à part le temps de compilation exhorbitant avec -O3.
_________________
"Confirm You are a robot." - the singularity
Back to top
View user's profile Send private message
Enlight
Advocate
Advocate


Joined: 28 Oct 2004
Posts: 3519
Location: Alsace (France)

PostPosted: Sun Sep 24, 2006 12:49 am    Post subject: Reply with quote

J'ai tourné en -Os puis en -O3, et devine quoi mes temps de chargements ont été améliorés. En fait y'a eu formatage et changement de filesystem bien sûr, mais c'est juste pour dire que la différence provenant de la taille des binaires me parraît avoir extremement peu d'impact sur un temps de chargement de programme car le temps nécessaire à trouver l'emplacement des fichiers compte beaucoup plus que le temps de lecture des données... après si on souffre de fragmentation avancée c'est peut être moins vrai.

Bref comme tu dis tu as réinstallé, donc moi je serais curieux de savoir si tu as également reformaté, parceque je parierais ma chemise que tes temps de chargement améliorés sont liés à un coup de frais au niveau du FS.

Sinon, il me semble que -O3 = -O2 -finline-funtions -funswitch-loops -fgcse-after-reload, perso à moins qu'un bug ne soit particulièrement connu, les 3 ne me font pas trop peur, bien moins que ftracer qui me semble t'il a un lourd passé.

J'ajoute qu'il a déjà maintes fois été expliqué qu'utiliser momit-leaf-frame-pointer cassait tout le (bon) travail de fomit-frame-pointer, spéciale dédicasse au projet jackass sur ce point et à la doc du stage 3 over stage 1.
Back to top
View user's profile Send private message
Dominique_71
Veteran
Veteran


Joined: 17 Aug 2005
Posts: 1878
Location: Switzerland (Romandie)

PostPosted: Sun Sep 24, 2006 10:06 am    Post subject: Reply with quote

Enlight wrote:
Bref comme tu dis tu as réinstallé, donc moi je serais curieux de savoir si tu as également reformaté, parceque je parierais ma chemise que tes temps de chargement améliorés sont liés à un coup de frais au niveau du FS.
L'ancienne partition système était en ext3, la nouvelle en reiser3, toute les deux avec noatime. Mais je n'ai rien reformaté, seulement effacé les données.

Quote:
Sinon, il me semble que -O3 = -O2 -finline-funtions -funswitch-loops -fgcse-after-reload, perso à moins qu'un bug ne soit particulièrement connu, les 3 ne me font pas trop peur, bien moins que ftracer qui me semble t'il a un lourd passé.

-O3 casse certaines construction mathématiques. Des ebuilds comme fftw empéchent portage d'utiliser -O3 et le remplace par -O2, mais aucune garantie n'existe queand à savoir que tous les ebuilds qui pourrait faire problème avec -O3 le filtre. J'ai fait des test avec nec2, un simulateur d'antenne, Le code obtenu avec -O3 et sans -fforce-adr est plus rapide qu'avec -O2, mais le résultat des simulations est faux dns environ 10% des cas. En raoutant -fforce-adr à -O3, le résultat devient correct dans tous les cas mais le programme n'est pas plus rapide qu'avec -O2.

Quote:
J'ajoute qu'il a déjà maintes fois été expliqué qu'utiliser momit-leaf-frame-pointer cassait tout le (bon) travail de fomit-frame-pointer, spéciale dédicasse au projet jackass sur ce point et à la doc du stage 3 over stage 1.

Le problème que j'ai rencontré est qu'il y a tant de threads et de sites qui parlent de cela qu'il est très difficile de trouver une information particulière et fiable. De plus, certains sites se contredisent comme par exemple IBM qui clame qu'il est possible d'obtenir un gain de 20 avec l'optimisation des boucles dans gcc 4 alors que d'autres sites déclarent que tout dépend des boucles, parfois on gagne (grandes boucles), parfois on perd (petites boucles), et qu'il faut voir de cas en cas.

Quote:
Sinon, il me semble que -O3 = -O2 -finline-funtions -funswitch-loops -fgcse-after-reload, perso à moins qu'un bug ne soit particulièrement connu, les 3 ne me font pas trop peur, bien moins que ftracer qui me semble t'il a un lourd passé.
Ceci est vrai pour gcc4.1, mais pour 3.4.5 comme dans l'ancienne install, il y a -fweb, -frename-registers avec -O3. C'est cette dernière qui peut causer problème avec les fonctions mathématiques. J'ignore si c'est le cas seulement sous x86 où si les archs qui ont plus de registres processeur se débrouillent mieux avec ce flag.
_________________
"Confirm You are a robot." - the singularity
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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