Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: The need to unmake move

Author: Robert Hyatt

Date: 08:38:50 08/26/03

Go up one level in this thread


On August 26, 2003 at 03:41:21, Uri Blass wrote:

>On August 25, 2003 at 18:28:24, Robert Hyatt wrote:
>
>>On August 25, 2003 at 18:14:15, Sune Fischer wrote:
>>
>>>
>>>>(status quo).
>>>
>>>Right, saw that one too late :)
>>>
>>>>That is exactly what I said.  The issue is how many copy/makes have to be
>>>>done per unit of time.  Or how many units of time it takes to do a single
>>>>copy/make.  Depends on your time scale (1s or 1ns).
>>>>
>>>>A single cpu that will run crafty at 1M nps has a cache-cache and cache-memory
>>>>bandwidth of X bytes/second.  A single cpu that runs crafty at 2M nps has
>>>>exactly twice the cache-cache and cache-memory bandwidth and twice the clock
>>>>frequency.  A dual-cpu just needs two cpus, but the two cpus give twice the
>>>>cache-cache bandwidth, but _no_ improvement in cache-memory bandwidth.
>>>>
>>>>This was all about memory bandwidth with respect to copy/make.
>>>
>>>Aaah, and here lies our source of disagreement.
>>>
>>>I was always talking about cache to cache, or as Johan wrote "C2C" bandwidth.
>>>
>>>I think the assumptions for make/uncopy to match make/umake is that the stack
>>>fits in cache, or else it will be heavily outgunned, even on a single.
>>>
>>>I doubt anyone disagrees with you there.
>>>
>>>>>
>>>>>You made it sound like 2.4 was much worse than 1, which is just a silly
>>>>>comparison at best.
>>>>
>>>>Clearly 2.4 _is_ much worse than 1.  It requires 2.4X the bandwidth.
>>>
>>>Yes _if_ you need to go over the bus.
>>>
>>>-S.
>>
>>
>>My stuff will _never_ fit in 512KB of L2, much less the far smaller L1/trace
>>caches (on the PIV).
>
>I admit that I understand nothing from this discussion.
>
>What is the stuff that you talk about and how do you find that your stuff does
>not fit in 512KB of L2?

From adding up the sizes of the various things I use within the search,
particularly to generate moves.  IE for the simple case, I have arrays for
bishops that are [64][256] and each entry is 8 bytes.  That is 128K bytes
and I have four of those, two for diagonal attacks, two for rook-type attacks.
That is 512kb right there, and then I have other such tables with 4 bytes per
chunk (4 of those).  Not to mention various 512 byte tables of all sorts of
masks, plus the instructions, plus the real bitmap stuff, etc.

It is way bigger than 512K.  In fact, it is bigger than 2048K when you add it
all up.

>
>If you talk about size of arrays then it is obvious because the size of the hash
>tables is bigger.

That's yet another issue, of course.  I was ignoring hash tables completely
and just looking at what is needed to generate moves, detect attacks, and
evaluate positions...




>
>If you are talking about something else then please explain
>what it is and how do you find if your stuff fit 512 kbytes.
>
>I remember a claim from previous discussion that it is better to have a special
>file that have functions that are done often so they can fit the cache but I
>never learned how to do it.
>
>I have no idea how to divide my programs to files in order to be faster.
>I do not like to care too much about constant speed improvement but if there is
>a simple way to do a better division of my program to files I will be happy to
>know.
>
>Uri



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.