Author: Robert Hyatt
Date: 09:04:05 01/06/04
Go up one level in this thread
On January 06, 2004 at 11:33:09, Richard Pijl wrote: > >>>Again, I'm not sure how that would help. I only use the first few entries in >>>normal positions. Just like my move list can theoretically hold a thousand >>>moves for one side even though that can never be reached. >> >>There is a difference if you have global varaibles or local varaibles. >> >>int swap[32] is a local varaible and I thought that the computer waste time in >>allocating memory to the local varaibles every time that you call it but maybe >>the computer does not work in that way thanks to some compiler optimiazation. >> >> > >Local variables are referenced from the stack. No 'malloc' type of memory >allocation is done for this. Reducing the size of local variables by a few bytes >gives no performance improvement. > >>> >>>> >>>>It seems to me that the price of allocating memory to 16 integer is higher than >>>>the price of one if (nc==15) inside the loop. >>> >>>16 integers is 1/2 of a cache line. 32 is exactly one line, except that there >>>is no alignment forced to make the starting address exactly divisible by 128. >>> > >Even if it is in two cachelines, both lines will normally be in the cache >anyway. That is, if the second part of the array is used at all. Yes, but it won't be there on _first_ reference to one of those local variables, And that means something in cache gets dumped to make room. That can be a small performance issue. Particularly if you compare to a global which maps to one place in cache period, as opposed to a local that is possibly used from many different points in the chess engine, and ends up referring to different parts of the stack each time. >>> >>>> >>>> >>>>Another point that I see is that it is using the value of the pieces and does >>>>not use piece square table. >>> >>>Correct. That will also simply confuse results. This is intended to be a >>>simple material-only estimate of "is the capture good or bad?" >>> >>> >>> >>>> >>>>I wonder if there is a reason not to use piece square table to evaluate capture >>>>of pawn in the 7th as better than capture of pawn in the second rank. >>>> >>>>Uri >>> >>>That would probably wreck the basic SEE concept. And pawns on the 7th don't >>>have much of a piece/square number for Crafty, so it really won't make any >>>difference for me. >> >>The point that I thought about is better order of captures. >>Even small difference in piece square table can generate better order of >>captures. > >Then you should apply that knowledge after of before doing the SEE. You already >know which square you're capturing on. No reason to burden the SEE with it. >Richard.
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.