seuillage - C++ - Programmation
Marsh Posté le 20-11-2011 à 18:00:26
déjà ton égale est inutile,
Après peut-être que
if (a-b) a=b; vaut pareil. Mais je suis limité moi.
Marsh Posté le 20-11-2011 à 18:02:46
ReplyMarsh Posté le 20-11-2011 à 18:04:15
GrosBocdel a écrit : Je pensais plutot à un truc bit à bit. C'est une partie que je ne maitrise pas. |
Sois je comprends pas, soit non. Tu peux pas, à moins que b et a soit deux bits ?
Marsh Posté le 20-11-2011 à 18:09:16
Non, dans mon cas, c'est des int.
T'as peut-etre raison, if (a-b) est peut-etre plus rapide (a vérifier).
Marsh Posté le 20-11-2011 à 18:10:07
GrosBocdel a écrit : Je me demandais s'il était possible de faire plus performant que: |
Et depuis quand ce genre de chose, qui se traduit directement en langage machine en instruction de saut conditionnel plus les instructions pour une assignation, c'est pas performant?
A+,
Marsh Posté le 20-11-2011 à 18:11:33
gilou a écrit : Et depuis quand ce genre de chose, qui se traduit directement en langage machine en instruction de saut conditionnel plus les instructions pour une assignation, c'est pas performant? |
Je sais pas
C'est directement le mieux?
Marsh Posté le 20-11-2011 à 18:19:03
GrosBocdel a écrit : |
T'as plus qu'à test !, je vais testé avec C. je sais pas quoi faire.
Marsh Posté le 20-11-2011 à 18:19:56
le code machine par défaut de ce code est :
Code :
|
Après, il existe des moyens plus rapides d'effectuer le test en utilisant des instructions spécifiques de certains processeurs.
Apparemment SSE4 ( http://fr.wikipedia.org/wiki/SSE4 ) définit des instructions permettant de calculer le min et le max plus rapidement ( 4 entiers 32 bits packés pour la comparaison ). Microsoft propose par exemple d'y accéder de la façon suivante : http://msdn.microsoft.com/fr-fr/library/bb514097.aspx
Marsh Posté le 20-11-2011 à 18:49:02
GrosBocdel a écrit : Non, dans mon cas, c'est des int. |
J'ai utilisé time sur gnu/linux sur p4, les résultat sont équivalents grosso modo. sur un entier, je pense pas que leur valeurs change quelque chose.
Marsh Posté le 20-11-2011 à 18:50:43
Il me semblait avoir vu qu'une comparaison avec zéro était plus rapide qu'une comparaison avec une autre valeur.
Je vais aller faire un tour du coté de sse, ça va m'occuper
Marsh Posté le 20-11-2011 à 18:55:13
GrosBocdel a écrit : |
[hors sujet]
Ca pourrait peut-être changer...
Est-ce que si au lieu de mesurer des suites de bits, on compare d'abord leur longueur ça change ?
Quel sont les enjeux...
Marsh Posté le 20-11-2011 à 19:05:18
En fait si j'ai posé la question du bit à bit, c'est parce que j'ai dans mon code
int t1=i & 0x7f;
qui me fait un modulo sur 0x7f.
C'est pour ça que je cherchais un truc comme ça
Marsh Posté le 20-11-2011 à 19:13:03
Je comprends pas. un modulo tu fais pas un et logique la ?
edit : otrho, j'ai fini. trop speedé le mec.
Marsh Posté le 20-11-2011 à 19:18:10
J'en sais rien je fais rien, les trucs bits à bits je maitrise pas
Marsh Posté le 21-11-2011 à 12:53:14
si tu veux gagner en perf sur une telle operation, déjà ca n'a de sens que sur un grand jeu de donnée (au moins une image mettons).
donc vectorise (sse) et multithread (eg avec openmp) apres chercher a faire plus optimisé au niveau du code assembleur je suis sûr que c'est comme essayer de battre un ordinateur a tetris, le compilateur fera mieux de toute facon.
Marsh Posté le 21-11-2011 à 13:21:03
GrosBocdel a écrit : En fait si j'ai posé la question du bit à bit, c'est parce que j'ai dans mon code |
Ça c'est une astuce qui ne marche qu'avec les nombres de la forme (2^n) - 1 (ie dont tous les bits significatifs sont à 1)
A+,
Marsh Posté le 21-11-2011 à 15:03:12
GrosBocdel a écrit : |
Ben le jour où tu auras clairement un problème de perf avec la ligne
if (a>=b) a=b;
tu creuseras la question, mais faudrait vraiment avoir du code trèèèèès particulier que pour ça soit de là et pas d'ailleurs que vienne ton goulot d'étranglement
Marsh Posté le 21-11-2011 à 16:17:35
j'avais trouvé ça hier.
http://www.aishack.in/2011/05/a-su [...] technique/
Il arrive à faire un x3!
Ca se rapproche un tout petit peu de mon probleme.
Marsh Posté le 21-11-2011 à 16:23:54
Ouais m'enfin là, c'est que dla spéculation à ce niveau
Marsh Posté le 21-11-2011 à 17:52:40
Joel F a écrit : cette page me fait pleurer du sang |
Je t'attendais pour commencer la kimouss. T'es en retard
Moi ça va, j'ai appris qu'on peut faire ce que je veux par pack de 4.
Je m'y colle dès que j'ai le temps.
Marsh Posté le 20-11-2011 à 17:57:07
Je me demandais s'il était possible de faire plus performant que:
if (a>=b) a=b;
pareil pour if (a<=b) a=b;
?
Message édité par GrosBocdel le 20-11-2011 à 17:57:52