Author: Robert Hyatt
Date: 12:52:45 02/19/04
Go up one level in this thread
On February 19, 2004 at 15:46:39, Uri Blass wrote: >On February 19, 2004 at 14:48:08, Robert Hyatt wrote: > >>On February 19, 2004 at 14:39:16, Uri Blass wrote: >> >>>Today I have an array direction[64][64] that gives me different numbers for >>>different directions(possible directions are queen direction that get 0-7 knight >>>directions that get -2,identical squares that get -9 or no direction that gets >>>-1 ). >>> >>>I thought about the idea to change it to the following definition: >>> >>>#define direction((i)(j)) directionnumber[translate[i]-translate[j]+128] >>> >>>The result is that I can get instead of one array of 4096 entries >>>2 arrays when translate is an array of 64 entries and directionnumber is an >>>array of 256 entries. >>> >>>My question is if it is a good idea from speed point of view. >>>It will probably be a simple change when I only need to construct the 2 arrays >>>and the main problem is to construct the translate array. >>> >>>It is probably only few hours of work but I do not like to spend time on >>>constructing these arrays only to discover later that it is not productive so I >>>ask for your opinion about it. >>> >>>Uri >> >> >>This is never easy to answer. And unfortunately, I would suggest that you >>simply try it to see. Trading additional instructions for fewer memory >>references is a good idea, but you are not exactly doing that. WIth your first >>approach, you do one memory reference and you are finished, even though it is >>into a fairly big array. With the second approach, you do three memory >>references, although the two translate array references might be to the same >>cache line if the thing is 64 chars rather than 64 ints. >> >>I wouldn't be surprised if the change turns out to be worse however, but it >>might be a "close thing". And, of course, the answer can change as your program >>changes as well, so that suddenly you start accessing something that dislodges >>either of the two smaller arrays, or the one bigger array from cache, making it >>more expensive to access one over the other. > >Thanks >Without clear answer there are other things with bigger priority to try. > >Uri Going fast is a lot more about witchcraft and superstition than it is about concrete facts. :)
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.