Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Is Bitboard worthy?

Author: Robert Hyatt

Date: 07:02:54 10/17/00

Go up one level in this thread


On October 17, 2000 at 05:14:14, Bas Hamstra wrote:

>On October 16, 2000 at 10:18:31, Robert Hyatt wrote:
>
>>On October 16, 2000 at 06:32:53, Pham Minh Tri wrote:
>>
>>>I know that Bitboard makes move generation the fastest, but this structure is
>>>also one of the most complicated. However, an old post said that the generation
>>>function is not the key of success to chess program and the author illustrated
>>>that after his optimality (which made that function work much faster), the speed
>>>of system increased only 1 percent.
>>>
>>>As a result, my question is: is bitboard really worthy for implementation when
>>>it takes a long time to program and more time to fix all bugs (maybe several
>>>times bigger than the rest of program)? Or is it better if we use this time to
>>>concentrate on hash table, null move threshold and so on? I plan that I will
>>>forget the bitboard (at least in the first period) if it help me only few
>>>percent.
>>>
>>>Pham
>>
>>
>>I see nothing that makes them harder to use than an array.  Nor nothing that
>>makes them particularly easier to use either.
>>
>>They have certain advantages on new architectures that move 64 bits of data
>>around in one cycle, and they have some advantages in evaluation where you can
>>answer lots of questions in one AND or OR operation.  On current machines, I
>>would say they are no faster nor slower than any other approach.  On 64 bit
>>architectures, they begin to look better.
>
>Well if you wanted to build attacked-from tables I would not be so sure. Some
>programs use that kind of info extensively. If you wanted to make such a
>program, BB certainly wouldn't be the first option.
>
>However I know at least 1 program that builds attacks-to tables with BB and that
>seems to work fine.
>
>
>Bas Hamstra.


Attacks_from works fine in bitboards.  Just read the chess 4.x article in
"Chess Skill in Man and Machine".  I did them until I decided I didn't really
need that often enough to tolerate the overhead.  I _still_ get that information
very quickly if I want it...  but I could get it even quicker.  Early versions
of crafty had attacks_from and attacks_to that were incrementally updated as the
board was modified.  I changed to rotated bitmaps to eliminate the overhead of
the incremental update and turn attacks into a simple table lookup.  And I got
rid of attacks_from almost everywhere except for a couple of places where I
 compute "in check".



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.