Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: about SEE of Crafty

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.