Author: Robert Hyatt
Date: 11:48:08 02/19/04
Go up one level in this thread
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.
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.