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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  12  13  14  ..  19  20  21  22  23  24
Auteur Sujet :

BlaBla@Programmation

n°374933
chrisbk
-
Posté le 28-04-2003 à 17:25:57  profilanswer
 

Reprise du message précédent :

Harkonnen a écrit :


Ben oui, mais alors, pourquoi le compilo me calcule ça correctement et pas le fpu ? C'est quand même une multiplication relativment simple ! :??:


 
hé oui tiens, ca vient pe des optims ?

mood
Publicité
Posté le 28-04-2003 à 17:25:57  profilanswer
 

n°374934
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 17:26:47  profilanswer
 

chrisbk a écrit :

dump le code C compilé histoire de voir [:spamafote]
 


fld x
fld y
call __iMul@16FloatingUnit
 
qu'est-ce que c'est que cette routine ??? :heink:
il arrive pas à faire un fmul en inline ce con de compilo ??


---------------
J'ai un string dans l'array (Paris Hilton)
n°374935
chrisbk
-
Posté le 28-04-2003 à 17:27:48  profilanswer
 

Harkonnen a écrit :


fld x
fld y
call __iMul@16FloatingUnit
 
qu'est-ce que c'est que cette routine ??? :heink:
il arrive pas à faire un fmul en inline ce con de compilo ??


 
c koi ton compilo ?
ben t'as plus qu'a tracer le code pour voir ce qu'elle fait....

n°374936
mareek
Et de 3 \o/
Posté le 28-04-2003 à 17:27:56  profilanswer
 

Harkonnen a écrit :


Ben oui, mais alors, pourquoi le compilo me calcule ça correctement et pas le fpu ? C'est quand même une multiplication relativment simple ! :??:

c'est quelc compilo ?
peut-être qu'il utilise les SSE ou qu'il fait une moulinette interne pour avoir une plus grande precision.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°374941
antp
Champion des excuses bidons
Posté le 28-04-2003 à 17:34:05  profilanswer
 

avec C++Builder :
 


 
mov [ebp-0x0c],0x3fc00000 // x
mov [ebp-0x10],0x40000000 // y
fld dword ptr [ebp-0x0c]
fmul dword ptr [ebp-0x10]
fstp dword ptr [ebp-0x14] // r
 


Message édité par antp le 28-04-2003 à 17:34:31

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374944
chrisbk
-
Posté le 28-04-2003 à 17:37:12  profilanswer
 

antp a écrit :

avec C++Builder :
 


 
mov [ebp-0x0c],0x3fc00000 // x
mov [ebp-0x10],0x40000000 // y
fld dword ptr [ebp-0x0c]
fmul dword ptr [ebp-0x10]
fstp dword ptr [ebp-0x14] // r
 




 
et le resultat ?

n°374952
nraynaud
lol
Posté le 28-04-2003 à 17:45:11  profilanswer
 

Harkonnen a écrit :

Je fais une multiplication de 2 flottants :
 
En C :
 
float x = 1.5
float y = 2.0
float r = x * y
1.49999999999999999999999 * 2.0 = 2.99999999999999998
 
je suis (relativement)d'accord
 
je fais l'équivalent en asm :
 
fld x
fld y
fmul st(0),st(1)
 
résultat : 2.99999999999432 !!
 
c'est quoi ce bordel ? :heink:
 


 
hooooo  ...... un Goldberg


Message édité par nraynaud le 28-04-2003 à 17:46:13
n°374955
chrisbk
-
Posté le 28-04-2003 à 17:46:13  profilanswer
 

nraynaud a écrit :


 
hooooo  ...... un Goldberg  


 
heuh ?
t'as raté qqchose, la, non ?

n°374956
nraynaud
lol
Posté le 28-04-2003 à 17:47:03  profilanswer
 

chrisbk a écrit :


 
heuh ?
t'as raté qqchose, la, non ?


quoi ?¿? mon url ?

n°374957
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-04-2003 à 17:47:54  profilanswer
 

nraynaud a écrit :


hooooo  ...... un Goldberg


rhooooooooo, comment c'est trop digeste, facile à lire et simple d'emploi [:joce]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 28-04-2003 à 17:47:54  profilanswer
 

n°374958
tchoupinet​te
Posté le 28-04-2003 à 17:48:16  profilanswer
 

au revoir tout le monde et bonne soirée
 
 
 :hello:  :hello:

n°374960
kadreg
profil: Utilisateur
Posté le 28-04-2003 à 17:49:55  profilanswer
 

nraynaud a écrit :


 
hooooo  ...... un Goldberg


 
vive mathML


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°374961
antp
Champion des excuses bidons
Posté le 28-04-2003 à 17:50:32  profilanswer
 

chrisbk a écrit :


 
et le resultat ?


 
j'ai oublié de regarder le résultat [:rofl]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374962
simogeo
j'ai jamais tué de chats, ...
Posté le 28-04-2003 à 17:50:47  profilanswer
 

Tchoupinette a écrit :

au revoir tout le monde et bonne soirée
 
 
 :hello:  :hello:  


 
ciao tchoupinette   :ange:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°374964
antp
Champion des excuses bidons
Posté le 28-04-2003 à 17:51:50  profilanswer
 

le résultat me donne "3" :o
 

Code :
  1. float x = 1.5;
  2. float y = 2.0;
  3. float r = x * y;
  4. ShowMessage(Format("%g", ARRAYOFCONST((r))));


 
(ça parraît logique :D)


Message édité par antp le 28-04-2003 à 17:52:15

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374966
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 17:52:12  profilanswer
 

chrisbk a écrit :


 
c koi ton compilo ?
ben t'as plus qu'a tracer le code pour voir ce qu'elle fait....


VC++ 4.0  :pt1cable:  
On bosse avec le builder d'habitude, mais la c'est une maintenance d'un vieux source


---------------
J'ai un string dans l'array (Paris Hilton)
n°374967
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 17:54:32  profilanswer
 

antp a écrit :

avec C++Builder :
 


 
mov [ebp-0x0c],0x3fc00000 // x
mov [ebp-0x10],0x40000000 // y
fld dword ptr [ebp-0x0c]
fmul dword ptr [ebp-0x10]
fstp dword ptr [ebp-0x14] // r
 




C'est la qu'on voit quand même qu'un compilo est moins efficace... Faire des multiplications avec une opérande stockée dans la mémoire au lieu de tout empiler et de multiplier sur la pile, c'est pas très efficace !


---------------
J'ai un string dans l'array (Paris Hilton)
n°374969
antp
Champion des excuses bidons
Posté le 28-04-2003 à 17:56:32  profilanswer
 

Ouais mais au moins pour 1.5 * 2 il te donne 3 :lol:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°374971
chrisbk
-
Posté le 28-04-2003 à 17:58:22  profilanswer
 

visu 7 debug:

Citation :


004E23B1 D9 45 EC         fld         dword ptr [a]  
004E23B4 D8 4D E0         fmul        dword ptr [b]  
004E23B7 D9 5D D4         fstp        dword ptr [r]


 

Harkonnen a écrit :


C'est la qu'on voit quand même qu'un compilo est moins efficace... Faire des multiplications avec une opérande stockée dans la mémoire au lieu de tout empiler et de multiplier sur la pile, c'est pas très efficace !


 
perso mon compilo utise direct en RAM, et je ne vois pas le pb. qu'est ce que ca change d'utiliser une operande en ram ? (a part une instruction en plus, voir meme plus si faut que tu fasses des contorsions pour eviter un stack overflow)

n°374974
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:04:34  profilanswer
 

chrisbk a écrit :

qu'est ce que ca change d'utiliser une operande en ram ? (a part une instruction en plus, voir meme plus si faut que tu fasses des contorsions pour eviter un stack overflow)


les accés à la RAM sont *beaucoup* plus lents que les accés aux registres internes !
évidemment, ici ça se voit pas, mais sur une grosse boucle, t'arrives à gagner pas mal de cycles si tu utilises la mémoire au minimum
 
edit : pour prendre le code de visual, ceci aurait été plus rapide, malgré 2 accés :
 
fld a
fld b
fmul st(1)
fstp r
 
pour peu que tu colles le fmul dans une boucle de 1000 000 000 d'itérations par exemple, je peux te certifier que tu vas ressentir le gain de vitesse par rapport à la version RAM


Message édité par Harkonnen le 28-04-2003 à 18:07:04

---------------
J'ai un string dans l'array (Paris Hilton)
n°374975
urd-sama
waste of space
Posté le 28-04-2003 à 18:05:21  profilanswer
 


[:rofl]


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°374976
chrisbk
-
Posté le 28-04-2003 à 18:06:10  profilanswer
 

Harkonnen a écrit :


les accés à la RAM sont *beaucoup* plus lents que les accés aux registres internes !
évidemment, ici ça se voit pas, mais sur une grosse boucle, t'arrives à gagner pas mal de cycles si tu utilises la mémoire au minimum


 
ben oui, mais pour empiler tu fais bien un acces ram hein ? :D
Et ici, le code n'est pas celui d'une boucle, donc a voir ce que ferait le compilo dans ce genre de cas

n°374979
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:09:32  profilanswer
 

chrisbk a écrit :


 
ben oui, mais pour empiler tu fais bien un acces ram hein ?


oui, mais généralement, les affectations tu ne les fais qu'une fois en dehors de la boucle
et dans le cas de variables statiques, tu t'arranges pour stocker le résultat au sommet de la pile, et c'est gagné !


---------------
J'ai un string dans l'array (Paris Hilton)
n°374983
nraynaud
lol
Posté le 28-04-2003 à 18:14:17  profilanswer
 

http://lwn.net/Articles/20574/

Citation :

The x86 is a wierd beast: while
loading floats from memory is quite fast (almost as fast as using a
float already on the register stack), storing (the fstp instruction)    
seems to be quite expensive.


n°374984
urd-sama
waste of space
Posté le 28-04-2003 à 18:14:24  profilanswer
 

des screenshots du prochain mod morrowind, bloodmoon  :love:  
http://www.gamespy.com/previews/ap [...] hots.shtml
c'est beau!


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°374986
chrisbk
-
Posté le 28-04-2003 à 18:15:38  profilanswer
 

Harkonnen a écrit :


oui, mais généralement, les affectations tu ne les fais qu'une fois en dehors de la boucle
et dans le cas de variables statiques, tu t'arranges pour stocker le résultat au sommet de la pile, et c'est gagné !


 
bah ouais, mais qui te dis que ce n'est pas ce que fait le compilo ?
 
fo voir :D (mais la g la flemme :D)
 
edit : les compilo disposent maintenant de tres bon systeme d'alloc de registre me semble t'il...


Message édité par chrisbk le 28-04-2003 à 18:16:13
n°374989
nraynaud
lol
Posté le 28-04-2003 à 18:18:34  profilanswer
 

chrisbk a écrit :


edit : les compilo disposent maintenant de tres bon systeme d'alloc de registre me semble t'il...


Oui enfin quand t'as un processeur de merde, t'as un processeur de merde, tu peux faire ce que tu peux avec les registres mais ça reste super-difficile.

n°374991
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:22:09  profilanswer
 

chrisbk a écrit :

edit : les compilo disposent maintenant de tres bon systeme d'alloc de registre me semble t'il...


personnellement, j'ai jamais trouvé le principe des 8 registres empilés de la FPU très efficace :/
tu passes ton temps à faire des fxch pour t'assurer que st(0) contienne la bonne valeur, etc... un beau bordel quoi !


---------------
J'ai un string dans l'array (Paris Hilton)
n°374992
chrisbk
-
Posté le 28-04-2003 à 18:23:54  profilanswer
 

Harkonnen a écrit :


personnellement, j'ai jamais trouvé le principe des 8 registres empilés de la FPU très efficace :/
tu passes ton temps à faire des fxch pour t'assurer que st(0) contienne la bonne valeur, etc... un beau bordel quoi !


 
ben ouais  
entre les quelques malheureux registres alu qui se battent en duel et la fpu avec sa pile, tu parles d'un merdier :D

n°374993
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:24:07  profilanswer
 

nraynaud a écrit :

http://lwn.net/Articles/20574/

Citation :

The x86 is a wierd beast: while
loading floats from memory is quite fast (almost as fast as using a
float already on the register stack), storing (the fstp instruction)    
seems to be quite expensive.


 


c'est clair que l'écriture en RAM c'est pas top avec la FPU... à éviter si possible :/


---------------
J'ai un string dans l'array (Paris Hilton)
n°374998
kadreg
profil: Utilisateur
Posté le 28-04-2003 à 18:26:17  profilanswer
 


Merde, je voulais aller sur blabla, mais j'ai du me tromper de topic
 
[:neowen]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°374999
chrisbk
-
Posté le 28-04-2003 à 18:26:25  profilanswer
 

Harkonnen a écrit :


c'est clair que l'écriture en RAM c'est pas top avec la FPU... à éviter si possible :/


 
et pourtant....
 
http://www.tatm.com/dom/mwb/doc/FPUBLAST.TXT
 
:D

n°375004
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:29:08  profilanswer
 

rooo putain, ce warrior ! remplir l'écran en utilisant la FPU faut oser quand même [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°375006
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:29:57  profilanswer
 

Citation :


Bref, un gain de 60% c'est vraiment cool. Sur du Vesa 2 en 640x400x32 bits
ca fait gagner un max : 9.6 ms par frame (soit 3/4 de VBL),
le temps de roter tous les points d'un world! :))


il me plait lui  :love:  :love:


---------------
J'ai un string dans l'array (Paris Hilton)
n°375007
chrisbk
-
Posté le 28-04-2003 à 18:31:02  profilanswer
 

Harkonnen a écrit :

rooo putain, ce warrior ! remplir l'écran en utilisant la FPU faut oser quand même [:ddr555]


 
reliquat des tps anciens, s'amusait bien a l'epoque quand meme :D

n°375009
Harkonnen
Un modo pour les bannir tous
Posté le 28-04-2003 à 18:33:28  profilanswer
 

chrisbk a écrit :


 
reliquat des tps anciens, s'amusait bien a l'epoque quand meme :D


ouais :'(
l'autre jour je me suis éclaté à faire un mandelbrot en pixel shader !
c'est pas mauvais du tout en fait ! loin derrière le SSE, mais assez efficace !


---------------
J'ai un string dans l'array (Paris Hilton)
n°375028
uriel
blood pt.2
Posté le 28-04-2003 à 19:12:04  profilanswer
 

:hello:  bonJour


---------------
IVG en france
n°375040
antp
Champion des excuses bidons
Posté le 28-04-2003 à 19:43:33  profilanswer
 
n°375046
drasche
Posté le 28-04-2003 à 20:01:05  profilanswer
 


ben c'est sûrement vrai et pour une raison fort simple: forcer les clients à upgrader, donc générer plus de revenus.  Parce que ces pourritures de clients n'aiment pas upgrader, suivant la fameuse règle du "if it's not broken, do not fix it".  J'en connais pas mal qui bossent encore en Office 95 :D


Message édité par drasche le 28-04-2003 à 20:02:40

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°375049
the real m​oins moins
Posté le 28-04-2003 à 20:06:42  profilanswer
 

y'a ma souris qui couine :fou:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°375058
nraynaud
lol
Posté le 28-04-2003 à 20:15:49  profilanswer
 

http://www-106.ibm.com/developerwo [...] arcstruts/
 
Je viens de regarder le premier schéma .... je suis pas hyper-motivé pour lire la suite :-(
 
 
 
... 'vais bosser un peu tiens !

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  12  13  14  ..  19  20  21  22  23  24

Aller à :
 

Sujets relatifs
programmation Pocket PC en C++[projet] Quel langage de programmation utiliser ? (active directory...
Programmation d'un événementProgrammation openGL
programmation HPVEE ...Programmation ASM sur Windows ?
[O Caml] Programmation d'un interpréteur - pb de syntaxeProgrammation GTK Linux , problème de #include
probleme programmation driver linux de carte E/S[Outil de programmation] Visual Studio .net 2002 pro fr
Plus de sujets relatifs à : BlaBla@Programmation


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)