Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Extracting bits from a BitBoard...

Author: Vincent Diepeveen

Date: 11:36:36 11/17/02

Go up one level in this thread


On November 17, 2002 at 10:53:05, Joel wrote:

a simple evaluation with a reasonable move ordering and
nullmove in combination with more than 1 probe in hashtables
give a big boost at a programs search depth!

with regards to bitboards,
i fear the hard truth for current 32 bits processors
is that without inline assembly bitboards is not the
way to make a chessprogram go faster than smaller
datastructures will do for you. It's slow anyway,
but most people in this world are better in copying
stuff than inventing how to do things better and faster
(as there is only a handful of real good programmers
walking around in such scenes), so when you try to
compete with your own non-bitboards code against the
crafty assembly, the job is a lot harder unless you are
a good programmer. In that case you'll find a factor of
2 somewhere. Of course at 32 bits processors. We'll see
what the 64 bits future brings, but i have already seen
so many predictions that we would have a fully capable
64 bits cpu for little money by 2000 that even in 2002
i first have to see it come first before i believe it.

Don't count on the hammer too much :)

the Xeon MP seems to have more potential...

Best regards,
Vincent

>Hey All,
>
>I am a 2nd year Uni student from Australia who has recently gotten into chess
>programming. My first attempt was a simple array-based alpha-beta variant which
>struggled to search more than 6 levels deep in most positions! I think that
>might have something to do with the fact that there was no move ordering,
>transposition table, an expensive evaluation function, no killer moves and weak
>coding :)
>
>I have been working on my second attempt for some time now. It uses Bitboards. I
>have a few questions regarding move generation.
>
>It seems to me that the performance of the Bitboard approach relies somewhat
>heavily on how fast you can retrieve the position of a 1 bit within a 64-bit
>unsigned integer. I looked for sometime on the Internet for some kind of
>magical, hacky solution to this dilemna, and the best I could find was this (b &
>-b) trick which I used in a debatedly clever way. I was just wondering if there
>is any approach significantly better than the one which I will outline below:
>
>1. (b & -b) to clear all 1 bit's except for one.
>2. get this value, mod it by 67 (which has the property that every possible
>   value returned is unique, thus i can hash to the position of the bit in the
>   64 bit integer.)
>
>I am no expert, but it doesn't seem too ineffecient to me. Any problems?
>
>Also, if there are any improvements, I would prefer to find out about the ones
>which do not involve assembly coding - I do not want to make my program too
>dependant on any one CPU architecture at this stage.
>
>Thanks for your time,
>Joel



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.