
on 26.08.2009 at 20:38 joel wrote :
a thought about operations tweaks
one may want to tile and/or partially unroll operation loops but since such thing characterize operations rather than objects themselves it is wrong to tag the objects with such info consider
matrix<double, tile<3, 3> > tiled1; //the first one //... matrix<double, tile<3, 1> > tiled2; //far from the first one //... matrix<double> result = tiled1*tiled2; //what tiling would occure In those cases, we compute the smallest common multiple of tiling shape as stated in all loop optimization techniques paper. i consider it a bad (erroneos) practice because in such a case neither of programmers intentions would take place but something totally different instead
'3' is a common number as well as 'power of 2' in such a common case like matrix<double, tile<32, 32> > t32; //... matrix<double, tile<3, 3> > t3; //maybe in some function //... //intention is to tile 3x3 m = t32*t3; //don't know about func' //parameter tiling according to your words, tiling would not occure at all!!! but that is not the programmer's intention indeed! i would prefer at least one of either tiling (most appropriate) to take place but not that totally different thing -- Pavel