|
Page : 1 2 Page Précédente | |
Auteur | Sujet : [C] Tableau à deux dimensions |
Publicité | Posté le 06-12-2007 à 00:32:56 |
tpierron | Oué, presque bon. Dans ta boucle sur j, j'itérerai jusqu'à m et non n.
Message cité 1 fois Message édité par tpierron le 06-12-2007 à 03:37:34 |
yokooo |
|
Joel F Real men use unique_ptr | @tpierron: Message cité 1 fois Message édité par Joel F le 06-12-2007 à 09:01:35 |
matafan |
|
Joel F Real men use unique_ptr | tu veut creer un tableau HxW : Moralité : Et ce qui me fait dire ça : ma thése sur le sujet + 2 ans de travaux en Traitement d'images haute performances Le truc A NE PAS FAIRE : allouer un tableau de pointeur et allouer W pointeur differents discontinues Message cité 1 fois Message édité par Joel F le 06-12-2007 à 12:33:01 |
neg'gwada rafix 971 | il est possible d'optimiser le calcul de produit de matrices en transposant la deuxieme matrice ! Message édité par neg'gwada le 07-12-2007 à 21:23:34 --------------- --- WinSplit Revolution --- |
Joel F Real men use unique_ptr | transposition matrice NxM = NxM load + NxM store ....
|
ngkreator | Qu'est-ce qui pose problème dans le fait d'allouer plusieurs pointeurs (pour chaque ligne) sur plusieurs emplacements mémoire discontinus? |
Joel F Real men use unique_ptr | si tes empalcements sont discontinu, tu va pourrir ton cache à chaque fin de ligne. Si ton bloc est continu (et que tu fais un beau tiling) tu mlinimises les sorties de cache.
|
Publicité | Posté le 06-12-2007 à 22:23:00 |
ngkreator | C'est quoi le cache et le tiling? Le cache c'est la mémoire cache du proc? |
Joel F Real men use unique_ptr | oui. le tiling c'est une technique qui consiste à travailler non pas sur les elements de ton tableau un par un mais par groupe de zone polygonale. En general tu ecris
c'ets - bon que :
Dans le 2e cas, tu maximise la localité de tes données dans le cache et limite les cache miss. On démotnre (enfin les matheux démontre) que la forme de tile optimale ets une bouel carrée, donc ici un rectangle ou un carré. La j'ai ecris à la va-vite. LE vrai code ne fait pas de *8 masi juste des += 8 Message édité par Joel F le 06-12-2007 à 22:43:00 |
matafan | Je suis pas sûr de bien avoir compris comment tu procèdes Joel. T c'est le tableau de H pointeurs, c'est ça ? Dans ce cas pour accéder à T[i][j] tu va d'abord lire l'adresse en T[i] (l'adresse de ta colonne), puis ensuite la valeur à cette adresse + j ? Comment ça peux être plus rapide qu'aller simplement lire la valeur à l'adresse B + H*i+j où B est ton bloc de H*W éléments (bloc contigu dans les deux cas) ? Surtout que la plupart des proc on un instruction qui fait mul et add en un coup ? |
yokooo | bon pour vous expliquer j'ai un projet à réaliser, le sujet est le suivant :
Message édité par yokooo le 07-12-2007 à 17:59:20 |
gilou ModérateurModzilla | Deja, cette partie la:
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
yokooo | ah oui ! merci beaucoup je fais les modifications de suite !
Message édité par yokooo le 07-12-2007 à 17:59:47 |
gilou ModérateurModzilla | Tu veux dire que tu peux t'arreter des que la bete est passee 3 fois partout?
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
yokooo | voila les modification apportées... ça ne marche pas... je ne vois pas pourquoi !
Message édité par yokooo le 07-12-2007 à 18:00:00 |
gilou ModérateurModzilla |
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
yokooo | C'est bon j'ai fais les modifs et tout fonctionne !!!! :-)
|
gilou ModérateurModzilla | Bon eh bien tant mieux.
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
Joel F Real men use unique_ptr |
En gros :
L'acces T[i][j] avec cette methode ne necessite qu'une addition, et non pas une addition + une multiplication. Fait le test toi-même tu verras. J'etait persuadé du contraire jusqu'à ce que je fasse l'essai, que je bench et que j'etudie l'assembleur généré dasn ce cas et le cas t[i+j*H] sous intel et PPC, gcc, Visual ou icc. Message cité 2 fois Message édité par Joel F le 06-01-2011 à 08:32:16 |
Taz bisounours-codeur |
Amen
|
Taz bisounours-codeur |
|
Taz bisounours-codeur | (au fait ton truc est pas bon, faut passer par un typedef) |
Joel F Real men use unique_ptr | oui pour le pointeur T* , j'ai tapé de tête, je corrige. |
Joel F Real men use unique_ptr |
Taz bisounours-codeur | multi_array. J'ai jamais regardé l'alloc, mais le code généré à l'accès aux éléments est le bon (je l'avais prouvé dans un topic là dessus). |
neg'gwada rafix 971 |
--------------- --- WinSplit Revolution --- |
yokooo | j'aurais aimé savoir si a partir du codage ci dessous il était possible de faire un affichage graphique indiquant toutes les cases et le nombre de passage à l'intérieur ? merci
Message édité par yokooo le 09-12-2007 à 16:32:48 |
gilou ModérateurModzilla | Adaptes celle de ce que j'ai donné en exemple, c'est pas bien dur.
--------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
yokooo | voila ce que j'ai fait ... mais ça ne marche pas... peut tu m'expliquer pourquoi ?
Message cité 1 fois Message édité par yokooo le 09-12-2007 à 22:50:33 |
Joel F Real men use unique_ptr |
|
gilou ModérateurModzilla |
printf, tu connais je suppose. Message édité par gilou le 09-12-2007 à 21:24:55 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
Joel F Real men use unique_ptr |
|
yokooo | ah oui effectivement j'avais oublié de changer le squares...
Message cité 1 fois Message édité par yokooo le 09-12-2007 à 22:44:39 |
Taz bisounours-codeur |
gilou ModérateurModzilla |
Tu fais un passage de parametre par addresse:
Message édité par gilou le 10-12-2007 à 11:11:02 --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
yokooo | ok c'est bon le programme se compile, mais...
|
gilou ModérateurModzilla |
Normal, vu qu'en ecrivant ton code, tu fais n'importe quoi:
C'est quoi la condition pour pouvoir incrementer ok?? --------------- There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! -- |
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
problème programme Tableau | [SQL] Afficher un certain nombre de donnée dans 1 ligne d'un tableau |
lire un fichier txt et sauvegarder certaine valeur dans un tableau int | balise IMG dimensions fausses, difference entre HTML & DOM, sous IE |
Tableau de chaînes de caractères | ActiveX en vb + javascript + tableau. |
Lire un tableau de valeurs dans un fichier contenant aussi du texte | Code pour placer un tableau toujours en haut de page |
problème usort() avec un tableau de 1000 - 2000 lignes | Créer un tableau en C (très simple mais pas pour moi...) |
Plus de sujets relatifs à : [C] Tableau à deux dimensions |