Salut,
à savoir, notamment, les options -march=pentium4 -sse2 -mfpmath=sse ?
Est-ce que l'utilisation de ces options produit vraiment un meilleur
code sur une machine à P4 ?
Salut,
à savoir, notamment, les options -march=pentium4 -sse2 -mfpmath=sse ?
Est-ce que l'utilisation de ces options produit vraiment un meilleur
code sur une machine à P4 ?
Salut,
à savoir, notamment, les options -march=pentium4 -sse2 -mfpmath=sse ?
Est-ce que l'utilisation de ces options produit vraiment un meilleur
code sur une machine à P4 ?
Je n'ai pas de p4 sous la main (beurk, un proc intel ;) mais à priori
c'est sensé avoir un effet sur certains codes (par exemple, je sais
que l'an dernier les étudiants qui faisaient du calcul par chez nous
ont vu la diff sur de la multiplication de matrices ... enfin, moi je
multiplie des matrices tous les jours ... ;)
Maintenant, si vraiment tu veux du code optimiser à mort pour un proc
intel, regarde du côté d'icc (oui, je sais, c'est pas gratos ... mais
bon la différence de perf est TRÈS impressionnante ... à quand de vrai
optim dans gcc ...)
Je n'ai pas de p4 sous la main (beurk, un proc intel ;) mais à priori
c'est sensé avoir un effet sur certains codes (par exemple, je sais
que l'an dernier les étudiants qui faisaient du calcul par chez nous
ont vu la diff sur de la multiplication de matrices ... enfin, moi je
multiplie des matrices tous les jours ... ;)
Maintenant, si vraiment tu veux du code optimiser à mort pour un proc
intel, regarde du côté d'icc (oui, je sais, c'est pas gratos ... mais
bon la différence de perf est TRÈS impressionnante ... à quand de vrai
optim dans gcc ...)
Je n'ai pas de p4 sous la main (beurk, un proc intel ;) mais à priori
c'est sensé avoir un effet sur certains codes (par exemple, je sais
que l'an dernier les étudiants qui faisaient du calcul par chez nous
ont vu la diff sur de la multiplication de matrices ... enfin, moi je
multiplie des matrices tous les jours ... ;)
Maintenant, si vraiment tu veux du code optimiser à mort pour un proc
intel, regarde du côté d'icc (oui, je sais, c'est pas gratos ... mais
bon la différence de perf est TRÈS impressionnante ... à quand de vrai
optim dans gcc ...)
Ben je l'ai installé. J'ai fait un test avec un programme pourtant de
calcul intensif, blandeenc, qui transforme du wav en mp3. Je n'ai
trouvé que 5 à 10 % de gain, c'est plutôt décevant. Alors c'est
peut-être dû au surcoût des couches d'adaptation Linux ?
Ben je l'ai installé. J'ai fait un test avec un programme pourtant de
calcul intensif, blandeenc, qui transforme du wav en mp3. Je n'ai
trouvé que 5 à 10 % de gain, c'est plutôt décevant. Alors c'est
peut-être dû au surcoût des couches d'adaptation Linux ?
Ben je l'ai installé. J'ai fait un test avec un programme pourtant de
calcul intensif, blandeenc, qui transforme du wav en mp3. Je n'ai
trouvé que 5 à 10 % de gain, c'est plutôt décevant. Alors c'est
peut-être dû au surcoût des couches d'adaptation Linux ?
Je ne connais pas exactement toutes les spécificités d'icc (l'archi je
n'y touche plus, moi ce que je préfère dans les compilos c'est le
typage ;), mais tu dois avoir des trucs qui vont prendre pas mal,
surtout, si à l'origine le code C était peu optimiser, et d'autre pour
lequel il n'y aura que peu de différence ...
La couche d'émul linux ne devrait pas ralentir outre mesure (voir dans
la faq l'explication exact du support des binaires linux.)
Je ne connais pas exactement toutes les spécificités d'icc (l'archi je
n'y touche plus, moi ce que je préfère dans les compilos c'est le
typage ;), mais tu dois avoir des trucs qui vont prendre pas mal,
surtout, si à l'origine le code C était peu optimiser, et d'autre pour
lequel il n'y aura que peu de différence ...
La couche d'émul linux ne devrait pas ralentir outre mesure (voir dans
la faq l'explication exact du support des binaires linux.)
Je ne connais pas exactement toutes les spécificités d'icc (l'archi je
n'y touche plus, moi ce que je préfère dans les compilos c'est le
typage ;), mais tu dois avoir des trucs qui vont prendre pas mal,
surtout, si à l'origine le code C était peu optimiser, et d'autre pour
lequel il n'y aura que peu de différence ...
La couche d'émul linux ne devrait pas ralentir outre mesure (voir dans
la faq l'explication exact du support des binaires linux.)
Maintenant, si vraiment tu veux du code optimiser à mort pour un proc
intel, regarde du côté d'icc (oui, je sais, c'est pas gratos ... mais bon
la différence de perf est TRÈS impressionnante ... à quand de vrai optim
dans gcc ...)
Maintenant, si vraiment tu veux du code optimiser à mort pour un proc
intel, regarde du côté d'icc (oui, je sais, c'est pas gratos ... mais bon
la différence de perf est TRÈS impressionnante ... à quand de vrai optim
dans gcc ...)
Maintenant, si vraiment tu veux du code optimiser à mort pour un proc
intel, regarde du côté d'icc (oui, je sais, c'est pas gratos ... mais bon
la différence de perf est TRÈS impressionnante ... à quand de vrai optim
dans gcc ...)
Bof, le typage. Faut dire que moi, je viens du hardware ! Mon langage
favori, c'est l'assembleur, 68000 de préférence :)
Je pense qu'il y a sans doute un problème de ce côté. En fait, le
compilo ne peut pas optimiser les boucles mal écrite tout seul !
Bof, le typage. Faut dire que moi, je viens du hardware ! Mon langage
favori, c'est l'assembleur, 68000 de préférence :)
Je pense qu'il y a sans doute un problème de ce côté. En fait, le
compilo ne peut pas optimiser les boucles mal écrite tout seul !
Bof, le typage. Faut dire que moi, je viens du hardware ! Mon langage
favori, c'est l'assembleur, 68000 de préférence :)
Je pense qu'il y a sans doute un problème de ce côté. En fait, le
compilo ne peut pas optimiser les boucles mal écrite tout seul !
Le compilateur ne peut pas faire de l'algorithmique. Si les
algorithmes de base sont nazes, le programme généré sera naze, c'est
tout.
Ce qui peut aider le compilateur, c'est quand on lui indique le plus
de choses possible sur ce que fait le code, ce qu'il advient de chaque
variable et de chaque valeur. Et ce qui permet ça, c'est justement...
le typage !
Le compilateur ne peut pas faire de l'algorithmique. Si les
algorithmes de base sont nazes, le programme généré sera naze, c'est
tout.
Ce qui peut aider le compilateur, c'est quand on lui indique le plus
de choses possible sur ce que fait le code, ce qu'il advient de chaque
variable et de chaque valeur. Et ce qui permet ça, c'est justement...
le typage !
Le compilateur ne peut pas faire de l'algorithmique. Si les
algorithmes de base sont nazes, le programme généré sera naze, c'est
tout.
Ce qui peut aider le compilateur, c'est quand on lui indique le plus
de choses possible sur ce que fait le code, ce qu'il advient de chaque
variable et de chaque valeur. Et ce qui permet ça, c'est justement...
le typage !
Mouais. À mon avis, c'est un pis-aller, non ? Il vaut mieux une bonne
réflexion en amont sur le code en lui-même plutôt qu'un recours à
des règles strictes et inflexibles... qui me semblent plus réservées au
contrôle - a priori - de la cohérence du code.
Mouais. À mon avis, c'est un pis-aller, non ? Il vaut mieux une bonne
réflexion en amont sur le code en lui-même plutôt qu'un recours à
des règles strictes et inflexibles... qui me semblent plus réservées au
contrôle - a priori - de la cohérence du code.
Mouais. À mon avis, c'est un pis-aller, non ? Il vaut mieux une bonne
réflexion en amont sur le code en lui-même plutôt qu'un recours à
des règles strictes et inflexibles... qui me semblent plus réservées au
contrôle - a priori - de la cohérence du code.
Le compilateur ne peut pas faire de l'algorithmique. Si les algorithmes
de base sont nazes, le programme généré sera naze, c'est tout.
Ce qui peut aider le compilateur, c'est quand on lui indique le plus
de choses possible sur ce que fait le code, ce qu'il advient de chaque
variable et de chaque valeur. Et ce qui permet ça, c'est justement...
le typage !
Le compilateur ne peut pas faire de l'algorithmique. Si les algorithmes
de base sont nazes, le programme généré sera naze, c'est tout.
Ce qui peut aider le compilateur, c'est quand on lui indique le plus
de choses possible sur ce que fait le code, ce qu'il advient de chaque
variable et de chaque valeur. Et ce qui permet ça, c'est justement...
le typage !
Le compilateur ne peut pas faire de l'algorithmique. Si les algorithmes
de base sont nazes, le programme généré sera naze, c'est tout.
Ce qui peut aider le compilateur, c'est quand on lui indique le plus
de choses possible sur ce que fait le code, ce qu'il advient de chaque
variable et de chaque valeur. Et ce qui permet ça, c'est justement...
le typage !
Les zélotes des langages fortement typés à la OCaml font leur promotion
sur l'aspect "sécurité", souvent vécu comme trop contraignant par
les programmeurs "bas niveau" qui aiment bien les magouilles.
Mais rien n'interdit de faire un typage complexe avec des portes de
sortie(c'est-à-dire la possibilité de faire des casts).
Un exemple de langage avec un typage complexe permettant quand même les
magouilles, en les rendant néanmoins inutiles, et favorisant
l'optimisation, est le C++. Bon, certes, le C++ a une syntaxe qui
confine à l'absurde, et son modèle d'implémentation rend son
déploiement difficile, mais c'est un autre débat.
Les zélotes des langages fortement typés à la OCaml font leur promotion
sur l'aspect "sécurité", souvent vécu comme trop contraignant par
les programmeurs "bas niveau" qui aiment bien les magouilles.
Mais rien n'interdit de faire un typage complexe avec des portes de
sortie(c'est-à-dire la possibilité de faire des casts).
Un exemple de langage avec un typage complexe permettant quand même les
magouilles, en les rendant néanmoins inutiles, et favorisant
l'optimisation, est le C++. Bon, certes, le C++ a une syntaxe qui
confine à l'absurde, et son modèle d'implémentation rend son
déploiement difficile, mais c'est un autre débat.
Les zélotes des langages fortement typés à la OCaml font leur promotion
sur l'aspect "sécurité", souvent vécu comme trop contraignant par
les programmeurs "bas niveau" qui aiment bien les magouilles.
Mais rien n'interdit de faire un typage complexe avec des portes de
sortie(c'est-à-dire la possibilité de faire des casts).
Un exemple de langage avec un typage complexe permettant quand même les
magouilles, en les rendant néanmoins inutiles, et favorisant
l'optimisation, est le C++. Bon, certes, le C++ a une syntaxe qui
confine à l'absurde, et son modèle d'implémentation rend son
déploiement difficile, mais c'est un autre débat.