|
Bas de page | |
---|---|
Auteur | Sujet : Représentation en mémoire d'une classe, assembleur |
Publicité | Posté le 16-12-2009 à 23:18:48 |
KangOl Profil : pointeur |
--------------- Nos estans firs di nosse pitite patreye... |
__tomjost c'est un pseudo ! | problem de alignement ?
|
Joel F Real men use unique_ptr |
ptitchep | C'est à dire un problème d'alignement? Et comment connaitre cet alignement à l'avance parce que là j'ai galéré à tatonner pour l'offset. Si ça se trouve (même si quand même ça serait difficile) j'ai eu une malchance énorme et les cases mémoires que j'ai pointées contiennent aussi les valeurs de mes tests. Donc mon offset est complètement faux et n'a fonctionné que par chance sur les N essais que j'ai fait. --------------- deluser --remove-home ptitchep |
Joel F Real men use unique_ptr | attends je viens de percuter la ... tu ecris du SSE2 en assembleur dans ta methode ... tu sais que y a des intrinsic pour ca et que le compilo va se debrouilelr tt seul |
ptitchep | Oui, je voulais voir comment ça marche --------------- deluser --remove-home ptitchep |
Joel F Real men use unique_ptr | ouais mais non, les intrinsic asm sont affreux a manipuler en C++ |
ptitchep | C'est à dire? Je dois faire comment en fait? Intrinsic ou non? Moi j'y arrive très bien sans... à part pour cette histoire d'offset.
--------------- deluser --remove-home ptitchep |
Joel F Real men use unique_ptr | bah goto la doc quoi. En gros dans xmmintrin.h t'as une flopée de fonction pour faire ça. Pour l'alignement, ce qui se passe est que pour charger une valeur dans un registre ssex son adresse doit etre aligné sur 128bits (ie 16 octets). Dans ton cas, le compilo doit ajouter du padding devant ton instance de classe pr que le movsd fonctionne. Ensuite, le SIMD n'est clairement pas fait pour faire ça, t'aura 0 gain EDIT: Message édité par Joel F le 17-12-2009 à 18:56:08 |
Publicité | Posté le 17-12-2009 à 18:52:21 |
ptitchep | Ok donc si je comprends bien, si je lui disais d'aligner mon instance sur 128 bits je n'aurais pas d'offset? ben le gain j'en ai un peu si j'ai beaucoup d'appel à cette méthode. C'est sur que sur d'autres parties j'ai gagné plus mais comme j'ai constaté une amélioration (même minime) j'ai gardé ce code. Un vecteur en 3D n'est pas un vecteur en 2D avec une composante de plus? Message cité 1 fois Message édité par ptitchep le 17-12-2009 à 20:13:52 --------------- deluser --remove-home ptitchep |
bjone Insert booze to continue |
Message cité 1 fois Message édité par bjone le 17-12-2009 à 20:51:28 |
Joel F Real men use unique_ptr |
|
Joel F Real men use unique_ptr |
|
Joel F Real men use unique_ptr |
__tomjost c'est un pseudo ! | hahaha ! |
ptitchep | Le truc c'est que j'avais essayé de charger mes 2 doubles d'un coup bien sûr puisque c'est la taille du registre... Impossible d'aligner correctement (avec gcc). Le gain est en effet minime comme je l'ai dit, je parle de plusieurs milliers d'appels dans la seconde. Mais bon il est là alors je ne vais pas remettre ma fonction de base. J'ai codé avec sse juste par curiosité et j'ai gagné quelques nano secondes, je ne vais pas virer ça si? Tu peux m'expliquer pour le vecteur? Moi et les math... (edit) retrouvé: Message cité 1 fois Message édité par ptitchep le 17-12-2009 à 23:05:03 --------------- deluser --remove-home ptitchep |
bjone Insert booze to continue |
|
Joel F Real men use unique_ptr |
|
ptitchep | Alors là, désolé... Par désespoir j'ai retenté le aligned(16) et ça fonctionne. J'ai maintenant des movapd...
--------------- deluser --remove-home ptitchep |
ptitchep | ok grillé Ca je le code pour moi et je commente chaque ligne dans ce cas. Sinon ce n'est même pas quand je pars, c'est le lendemain que c'est impossible à maintenir. Message cité 1 fois Message édité par ptitchep le 17-12-2009 à 23:33:25 --------------- deluser --remove-home ptitchep |
__tomjost c'est un pseudo ! | vous avancer trop vite ! .... je ne reussie pas |
__tomjost c'est un pseudo ! | ..... jai crois qui ont quitter....
|
Joel F Real men use unique_ptr |
|
Joel F Real men use unique_ptr |
|
ptitchep |
Quel lien en fait? Message édité par ptitchep le 18-12-2009 à 09:57:34 --------------- deluser --remove-home ptitchep |
Joel F Real men use unique_ptr |
ptitchep |
--------------- deluser --remove-home ptitchep |
__tomjost c'est un pseudo ! |
|
Joel F Real men use unique_ptr |
|
__tomjost c'est un pseudo ! | [je viens d'editer .]
Message édité par __tomjost le 22-12-2009 à 23:25:24 |
Publicité | Posté le |
Sujets relatifs | |
---|---|
Instanciation de classe et accès aux méthodes des classe filles | POO : définir la bonne classe suivant des variables |
Une instance de classe métier pour plusieurs forms | Question sur la réservation mémoire |
(DEBUTANT) Probleme de classe en c++ | [C++] classe array 1d et delete[] |
[C++] Map statique dans une classe | [Architecture] Utiliser une classe en dev / test et une autre en prod |
[C/C++] Coût d'une allocation mémoire | |
Plus de sujets relatifs à : Représentation en mémoire d'une classe, assembleur |