optimisations CPU

optimisations CPU - C++ - Programmation

Marsh Posté le 20-02-2005 à 16:03:26    

Salut à tous.
Je me posait une question, j'ai fait une recherche internet pour trouver comment utiliser les instructions SSE,SSE2... des cpu mais je n'ai pas trouvé d'exemple en c++, mais seulement en assembleur.
Donc je voudrais savoir si il existe un moyen de le faire en c++ et si possible de me donner un exemple.
D'avance merci.

Reply

Marsh Posté le 20-02-2005 à 16:03:26   

Reply

Marsh Posté le 20-02-2005 à 16:18:05    

euh, les instructions SSE et autres ne sont utilisables qu'en assembleur hein !
tout ce que tu peux faire, c'est indiquer à ton compilateur C++ que lors de la compilation, tu souhaites générer un exécutable qui sera optimisé pour utiliser ces instructions, c'est tout !
il n'y a aucun équivalent C++ à l'instruction ADDPS du SSE par exemple


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 20-02-2005 à 16:24:24    

Merci, je vais voir si j'y arrive mais bon je vais voir.


Message édité par tafid le 20-02-2005 à 16:24:57
Reply

Marsh Posté le 21-02-2005 à 07:37:06    

Salut,
Sur le site d'intel il y a un tutorial très bien fait qui explique le fonctionnement de ces instructions ( le nom du fichier est "sfpintro.exe" ).
Si tu utilise visual c++ 6 le plus simple est de télécharger le 'processor pack' dispo sur le site de microsoft, cela te permet grace aux 'intrinsics'( sorte de macros ) d'inclure facilement ces instructions dans ton code en aillant moins recours à des passages en assembleurs.
 

Reply

Marsh Posté le 21-02-2005 à 09:46:31    

Sinon, en ce qui concerne Gcc, la version 3.5 apportera beaucoup de nouvelles choses:
http://gcc.gnu.org/projects/tree-s [...] ation.html

Reply

Marsh Posté le 21-02-2005 à 12:59:59    

Lam's a écrit :

Sinon, en ce qui concerne Gcc, la version 3.5 apportera beaucoup de nouvelles choses:
http://gcc.gnu.org/projects/tree-s [...] ation.html


 
version 4.0 pour l'évennement!

Reply

Marsh Posté le 21-02-2005 à 14:11:52    

de mémoire le compilateur C/C++ Intel expose les divers SSE en c/c++.

Reply

Marsh Posté le 21-02-2005 à 15:35:28    

J'y connais rien, mais y'a les intrinsics "portables" entre gcc/visual/icc.

Reply

Marsh Posté le 21-02-2005 à 21:02:47    

merci pour toutes ces reposes c'est sympa mais pour les optimisations sous c++ avec le pack je comprens pas trop comment les inserer (pas encore de prog concret mais pour info de savoir comment les utiliser) mais je vais aller voir sur le site d'intel pour voir comment ils expliquent ca.
 
gnoofy120 es ce que tu pourrait me dire ou passer le lien vers ce tutorial car je ne le trouve pas j'ai chercher dans les rubriques
 
Apres une nouvelle recherche j'ai trouvé un tutorial sur le sse2 qui a l'air assez bien expliqué (c'est un executable) donc je cris povoir m'en sortir mais si qq un a le lien pour le sse je veut bien (mais les deux doivent etre proche je pense).
 
derniere question mais je sais que je reve la : es ce que le meme tutorial fr est dispo, car je comprend dans la generalite mais il y des petits point que je ne comprends pas trop.


Message édité par tafid le 21-02-2005 à 22:04:02
Reply

Marsh Posté le 21-02-2005 à 22:52:29    

il faut garder à l'esprit que la vectorisatino 100% automatique reste un doux rêves :)
 

Reply

Marsh Posté le 21-02-2005 à 22:52:29   

Reply

Marsh Posté le 23-02-2005 à 17:19:36    

Salut,
 
J'utilise un article très bien fait qui contient a la fois des exemples intrinsic et asm dans du code c++ et il est très clair
 
http://www.x86.org/articles/sse_pt1/simd1.htm
http://www.x86.org/articles/sse_pt2/simd2.htm
http://www.x86.org/articles/sse_pt3/simd3.htm
Sinon une autre source pas mal
 
http://www.agner.org/assem/
 
Mais avant de se lancer dedans il faut vraiment savir si cela est utilie
 
Bon courage

Reply

Marsh Posté le 23-02-2005 à 19:33:37    

ok je te remercie pour les liens c'est sympa. Mais pour ces optimisation c'est par curiosité de savoir comment ca marche, et pour l'utilser si j'en ai besoin .
Encore merci pour toutes vos reponses.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed