Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

IBM - XL C/C++ Advanced Edition pour Mac OS X

4 réponses
Avatar
Bruno CAUSSE
Bonsoir,

Qui utilise ce compilo? Vos impressions par rapport a GCC

Le meme code source (en c) compilé avec GCC 4 sur G5 1.8 Ghtz (O3 -fast) est
20 % moins rapide que sur un Athlon 32 bits 1.8... Ghtz (O3
-fomit-frame...). Bizare non?

Merci.

--
Bruno Causse
http://perso.wanadoo.fr/othello

4 réponses

Avatar
Schmurtz
Bruno CAUSSE wrote:

Bonsoir,

Qui utilise ce compilo? Vos impressions par rapport a GCC

Le meme code source (en c) compilé avec GCC 4 sur G5 1.8 Ghtz (O3 -fast) est
20 % moins rapide que sur un Athlon 32 bits 1.8... Ghtz (O3
-fomit-frame...). Bizare non?


La vitesse dépend de beaucoup de paramètres, ça dépendra donc beaucoup
de ce que fait ton programme et comment il le fait.

Rajoute toujours -fomit-frame-pointer pour la compilation PPC.

Tu peux aussi tester l'auto-vectorisation : -ftree-vectorize -maltivec

Profiler le code avec shark permettra peut-être de trouver d'où vient
cette différence de vitesse, qui peut-être due à une mauvaise manière de
coder.

--
Schmurtz

Avatar
Bruno CAUSSE
dans l'article 432d5aad$0$17547$, Schmurtz à
a écrit le 18/09/05 14:16 :

Profiler le code avec shark


Oui, j'experimente shark, pas tout piger encore (les options qui vont
biens). Doit t'on profiler une release ou une debug, profiler une debug est
t'il pertiment? Avec une release comment avoir des info comprehensibles?

permettra peut-être de trouver d'où vient
cette différence de vitesse, qui peut-être due à une mauvaise manière de
coder.


le code source est le MEME pas une virgule ne manque.

--
Bruno Causse
http://perso.wanadoo.fr/othello

Avatar
pmanet
Bruno CAUSSE wrote:


cette différence de vitesse, qui peut-être due à une mauvaise manière de
coder.


le code source est le MEME pas une virgule ne manque.


ça ne veut rien dire... il n'y a pas que la compilation,il y a aussi la
façon de gérer les flux de données qui peut être optimisée.

on ne travaille pas pareil avec des proc sans registres et pipeline
long, ou avec registre, unités vectorielles et pipeline court. Et ce ne
sont pas les options de compilation qui gèrent ça.
--
Philippe Manet


Avatar
Schmurtz
Bruno CAUSSE wrote:

dans l'article 432d5aad$0$17547$, Schmurtz à
a écrit le 18/09/05 14:16 :

Profiler le code avec shark


Oui, j'experimente shark, pas tout piger encore (les options qui vont
biens). Doit t'on profiler une release ou une debug, profiler une debug est
t'il pertiment? Avec une release comment avoir des info comprehensibles?


Debug = sans optimisation (-O0)
Release = avec toutes les optimisations utilisées

L'activation des symboles de déboggage n'a absolument aucun impact sur
la vitesse d'execution.

Pour ce qui est de la recherche des zones sensibles (ie les fonctions
consommant le plus de CPU), travailler sur une version release ou debug
n'a pas beaucoup d'importance : la version debug ralenties légèrement,
mais de manière assez uniforme.

Pour ce qui est de l'optimisation d'un algorithme, on peut aussi
utiliser la version debug.

Pour ce qui est de l'optimisation d'implémentation(*) d'une fonction, il
faut optimiser sur la version Release : ça n'a aucun sens d'optimiser
manuellement du code avant de regarder ce que les compilateurs font.

(*) des optimisations de bouts de chandelle : utilisation d'assembleur,
forcer l'utilisation de registres, optimiser l'organisation en mémoire,
optimiser l'usage des caches L1 et L2, dérouler des boucles...

--
Schmurtz