Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Rough comparison between my brain and a wood post.

Author: Robert Hyatt

Date: 18:34:11 06/20/00

Go up one level in this thread


On June 20, 2000 at 21:05:28, Christophe Theron wrote:

>On June 20, 2000 at 15:02:29, James Robertson wrote:
>
>>On June 20, 2000 at 14:55:51, Robert Hyatt wrote:
>>
>>>On June 20, 2000 at 14:34:37, James Robertson wrote:
>>>
>>>>On June 20, 2000 at 14:21:23, Christophe Theron wrote:
>>>>
>>>>>On June 20, 2000 at 11:17:48, Andrew Williams wrote:
>>>>>
>>>>>>On June 20, 2000 at 09:02:26, Robert Hyatt wrote:
>>>>>>
>>>>>>>On June 20, 2000 at 04:55:22, Dann Corbit wrote:
>>>>>>>
>>>>>>>>On June 20, 2000 at 04:41:47, James Robertson wrote:
>>>>>>>>
>>>>>>>>>Ignore all results from my previous post "Rough comparison between ro....". I
>>>>>>>>>made some stupid coding errors in my test rotated bitboard code. Once fixed the
>>>>>>>>>rotated bitboards look very competitive against 0x88. :) I also found flaws in
>>>>>>>>>my 0x88 code, but they were very minor and I think I caught all of them (correct
>>>>>>>>>move lists are generated in all my test positions).
>>>>>>>>>
>>>>>>>>>I am very happy to continue to use rotated bitboards. Thanks Robert for
>>>>>>>>>inventing them, and thanks Tim for showing me how to use them!
>>>>>>>>
>>>>>>>>What was the timing ratio for various operations between the two methods?
>>>>>>>>
>>>>>>>>For the 0x88, what board size did you use?
>>>>>>>
>>>>>>>
>>>>>>>For 0x88 you don't have much choice... it has to be 128, where you use the left
>>>>>>>half for the board, the right half (64 squares) are off the board.  There is
>>>>>>>really a top half of 128 words also, but 0x88 eliminates references to them
>>>>>>>due to the 0x80 bit not being allowed.
>>>>>>
>>>>>>Christophe Theron posted a few interesting pointers to using 16x16 instead of
>>>>>>16x8 last week (I think).
>>>>>>
>>>>>>Andrew
>>>>>
>>>>>
>>>>>Yes. I think that comparing 0x88 and bitboards is not totally relevant, as 0x88
>>>>>is in my opinion suboptimal. I explained why in last week's posts.
>>>>>
>>>>>There are also many smart tricks you can use that are derived from the
>>>>>properties of a 16x16 (or 16x12) board, and they have never been published.
>>>>>
>>>>>I don't believe it is possible to compare 0x88, 16x and bitboards in one day or
>>>>>two. Once you start to use one system, you discover smart ways to optimize it
>>>>>even months after you start using it.
>>>>>
>>>>>I think that 16x and bitboards just break even, even on 64 processors, but it
>>>>>would probably be very difficult to demonstrate this...
>>>>>
>>>>>
>>>>>    Christophe
>>>>
>>>>I don't think we will ever know which is better, as there will probably never be
>>>>someone who spends enough time at both to find every clever trick a system
>>>>provides. I think I would stick with bitboards even if I knew their absolute max
>>>>move generation speed to be 1/2 the 16x absolute max. First, 1/2 the speed in
>>>>move generation is not that much when translated into a complete chess program,
>>>>and second, I have so much more experience with bitboards that I would be able
>>>>to bring them closer to some "absolute" potential than any other representation
>>>>to its "absolute" potential.
>>>>
>>>>James
>>>
>>>
>>>I have done both (+ others) for a long time. I used 0x88 in the 1970's and early
>>>80's, but switched to a 10x12 board in the early 80's as it vectorized better
>>>and fit the Cray architecture better.  I stuck with that until 1995/1996 when I
>>>started with bitboards.
>>>
>>>I don't know that any one approach is way better than the others on 32 bit
>>>machines.  But things do change on 64 bit machines, and on machines with
>>>streaming vector hardware.  IE I did things far differently on a cray because
>>>I knew the architecture in great detail, and designed things to be done
>>>efficiently.  If you haven't studied a Cray and what it can do with vector
>>>operations, it is an eye-opening experience to do so.  Vectors aren't just for
>>>adding, subtracting, etc.  You can do mobility with different weights for
>>>each square, etc.  And you can do it _fast_.
>>>
>>>I have a pretty strong feeling that bitboards is better than other approaches
>>>on 64 bit machines, primarily due to data density.  A 64 bit int passes around
>>>a lot of data with a bitboard, while for a program that doesn't need that much
>>>data precision, it passes around a whole lot of zeroes...  and you get nothing
>>>for passing them around.
>>
>>This is encouraging. I was practically in despair last night thinking I would
>>have to rewrite my program in 16x or 0x88 as the speed advantages were
>>"overwhelming". I was VERY happy to discover that the tremendous speed
>>difference was due to big mistakes on my part!
>>
>>James
>
>
>Just realize that the power of 0x88 or 16x goes far beyond what you can discover
>in such a little time...
>
>
>    Christophe


Same thing for bitboards.  Takes at least a couple of years to get you to the
point where they seem 'natural'.



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.