Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 64-bit machines

Author: Robert Hyatt

Date: 09:00:35 02/10/03

Go up one level in this thread


On February 09, 2003 at 22:56:59, Tom Kerrigan wrote:

>On February 09, 2003 at 22:47:01, Robert Hyatt wrote:
>
>>The claim to fame for the sparc approach is simply "fast procedure calls".
>>No register saving or restoring.  It was a necessary trade-off since the
>>first sparcs didn't have hardware integer multiply/divide which made procedure
>>calls very frequent.
>
>Compilers that inline code and do "fastcalls" negate any benefit that register
>windowing gives you.

NO they do not.  What about saving registers?  NO way to avoid that, and on
the sparc it costs exactly nothing unless you run out the top of the register
stack
and the O/S has to take a time-out to dump the stack to memory and reset.

You can't inline _everything_.  In particular, library calls, but also this
includes
plenty of stuff like search() as you don't inline recursive calls either.  And
big
functions are another issue as I would not want my evaluation inlined in a dozen
places or the code would be terribly cache-unfriendly.


>
>>>Doesn't matter for computer chess. Every program I know about (with the
>>>exception of HIARCS) has a working set of < 256k.
>>I have one that doesn't fit your working set limit...
>>IE my attack lookup tables are 8 byte arrays of size [64][256] which turns
>
>You don't have to do some sort of thought experiment to try to figure out how
>big your working set is. Just run your program on a certain processor and vary
>its clock speed. If the program scales [more or less] linearly, your working set
>is smaller than the CPU's caches.

Come on.  Suppose the working set is 500mb?  It will very likely scale
"linearly"
anyway.  Because _all_ memory references are going to be memory references.

however, in the case of a specific program, it is not very difficult to see how
cache
friendly it is (assuming Intel processors here, as I don't know about AMD).
Just
set and then read the MSR stuff forcing it to count cache hits/misses.  You can
come up with some "ratio" that feels right to justify "most memory references
are
cache hits" if you want to...

But for Crafty, it is even easier since the "kernel" or the program is not that
many lines
and it can be pretty easily measured.  But the MSR stuff is the best way to
determine
this.

>
>-Tom



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.