Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1182 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  seuillage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

seuillage

n°2112498
GrosBocdel
Posté le 20-11-2011 à 17:57:07  profilanswer
 

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 cité 1 fois
Message édité par GrosBocdel le 20-11-2011 à 17:57:52
mood
Publicité
Posté le 20-11-2011 à 17:57:07  profilanswer
 

n°2112499
Profil sup​primé
Posté le 20-11-2011 à 18:00:26  answer
 

déjà ton égale est inutile,
Après peut-être que
if (a-b) a=b; vaut pareil. Mais je suis limité moi.


Message édité par Profil supprimé le 20-11-2011 à 18:00:38
n°2112500
GrosBocdel
Posté le 20-11-2011 à 18:02:46  profilanswer
 

Je pensais plutot à un truc bit à bit. C'est une partie que je ne maitrise pas.

n°2112501
Profil sup​primé
Posté le 20-11-2011 à 18:04:15  answer
 

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 ?


Message édité par Profil supprimé le 20-11-2011 à 18:05:27
n°2112502
GrosBocdel
Posté le 20-11-2011 à 18:09:16  profilanswer
 

Non, dans mon cas, c'est des int.
 
T'as peut-etre raison, if (a-b) est peut-etre plus rapide (a vérifier).

Message cité 1 fois
Message édité par GrosBocdel le 20-11-2011 à 18:10:47
n°2112503
gilou
Modérateur
Modzilla
Posté le 20-11-2011 à 18:10:07  profilanswer
 

GrosBocdel a écrit :

Je me demandais s'il était possible de faire plus performant que:
if (a>=b) a=b;
pareil pour if (a<=b) a=b;
?

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2112504
GrosBocdel
Posté le 20-11-2011 à 18:11:33  profilanswer
 

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?
A+,


 
Je sais pas  :o  
C'est directement le mieux?

n°2112505
Profil sup​primé
Posté le 20-11-2011 à 18:19:03  answer
 

GrosBocdel a écrit :


 
Je sais pas  :o  
C'est directement le mieux?


 
T'as plus qu'à test !, je vais testé avec C. je sais pas quoi faire.  [:vyse]

n°2112506
xilebo
noone
Posté le 20-11-2011 à 18:19:56  profilanswer
 

le code machine par défaut de ce code est :  
 

Code :
  1. b = 47;
  2. 0041146E  mov         dword ptr [a],2Fh
  3. b = 45;
  4. 00411475  mov         dword ptr [b],2Dh
  5. if ( a > b ) a =b ;
  6. 0041147C  mov         eax,dword ptr [a]
  7. 0041147F  cmp         eax,dword ptr [b]
  8. 00411482  jle         wWinMain+3Ah (41148Ah)
  9. 00411484  mov         eax,dword ptr [b]
  10. 00411487  mov         dword ptr [a],eax


 
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

n°2112508
GrosBocdel
Posté le 20-11-2011 à 18:35:06  profilanswer
 

D'accord ok je vois mieux comment ça se passe  :jap:  

mood
Publicité
Posté le 20-11-2011 à 18:35:06  profilanswer
 

n°2112510
Profil sup​primé
Posté le 20-11-2011 à 18:49:02  answer
 

GrosBocdel a écrit :

Non, dans mon cas, c'est des int.
 
T'as peut-etre raison, if (a-b) est peut-etre plus rapide (a vérifier).


 
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.

n°2112511
GrosBocdel
Posté le 20-11-2011 à 18:50:43  profilanswer
 


 
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
 

n°2112512
Profil sup​primé
Posté le 20-11-2011 à 18:55:13  answer
 

GrosBocdel a écrit :


 
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
 


 
[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...


Message édité par Profil supprimé le 20-11-2011 à 18:55:46
n°2112513
GrosBocdel
Posté le 20-11-2011 à 19:05:18  profilanswer
 

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

n°2112518
Profil sup​primé
Posté le 20-11-2011 à 19:13:03  answer
 

Je comprends pas. un modulo tu fais pas un et logique la ?
 
edit : otrho, j'ai fini. trop speedé le mec.  [:palmyre]


Message édité par Profil supprimé le 20-11-2011 à 19:14:09
n°2112519
GrosBocdel
Posté le 20-11-2011 à 19:18:10  profilanswer
 

J'en sais rien je fais rien, les trucs bits à bits je maitrise pas

n°2112604
Lightness1​024
Posté le 21-11-2011 à 12:53:14  profilanswer
 

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.


---------------
http://projets.6mablog.com/
n°2112609
gilou
Modérateur
Modzilla
Posté le 21-11-2011 à 13:21:03  profilanswer
 

GrosBocdel a écrit :

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.
 

Ç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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2112619
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 21-11-2011 à 15:03:12  profilanswer
 

GrosBocdel a écrit :


 
Je sais pas  :o  
C'est directement le mieux?


 
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 :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2112640
GrosBocdel
Posté le 21-11-2011 à 16:17:35  profilanswer
 

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.
 

n°2112641
Terminapor
I'll see you rise.
Posté le 21-11-2011 à 16:23:54  profilanswer
 

Ouais m'enfin là, c'est que dla spéculation à ce niveau :o


---------------
Perhaps you don't deserve to breathe
n°2112645
Joel F
Real men use unique_ptr
Posté le 21-11-2011 à 16:56:42  profilanswer
 

cette page me fait pleurer du sang

n°2112651
GrosBocdel
Posté le 21-11-2011 à 17:52:40  profilanswer
 

Joel F a écrit :

cette page me fait pleurer du sang


 
Je t'attendais pour commencer la kimouss. T'es en retard  :o  
 
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.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  seuillage

 

Sujets relatifs
Labelisation image binaire (apres seuillage)Help needed Seuillage MATLAB
seuillage d'images avec matlabseuillage d'images avec matlab
Plus de sujets relatifs à : seuillage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR