Author: James Robertson
Date: 12:02:29 06/20/00
Go up one level in this thread
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
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.