Author: Peter McKenzie
Date: 15:42:33 06/14/00
Go up one level in this thread
On June 14, 2000 at 17:41:11, Alessandro Damiani wrote: >On June 14, 2000 at 16:17:25, Christophe Theron wrote: > >>On June 14, 2000 at 15:01:32, Dann Corbit wrote: >> >>>On June 14, 2000 at 06:56:27, Christophe Theron wrote: >>>>On June 14, 2000 at 05:32:16, Alessandro Damiani wrote: >>>>>On June 13, 2000 at 23:18:54, Christophe Theron wrote: >>>>>>On June 13, 2000 at 16:53:39, Eugene Nalimov wrote: >>>>>>>Combine two approaches -- 0x88 and 10x12. Use 12x16 board, and access board by >>>>>>> board[0x20+square] >>>>>>>(In C/C++ you can define macro for that). >>>>>>> >>>>>>>Than in each case you can use more appropriate of 2 methods. >>>>>> >>>>>> >>>>>>Well actually Eugene it is what I do already. Sorry, I should have stated this >>>>>>more clearly in my post. I don't use 12x12 or 10x12. I use 16x16 (actually I >>>>>>just need 16x12). >>>>>> >>>>>>I don't even need to add 0x20... That's why I think 16x12 is more efficient than >>>>>>0x88, and this comes from close examination of what a typical chess program does >>>>>>most of the time. >>>>>> >>>>>> >>>>>> Christophe >>>>> >>>>>The next step are bitboards. >>>>> >>>>>Alessandro >>>> >>>> >>>>How many of the top programs actually use bitboards? >>> >>>My guess is that of those programs which are for sale, none of them do. >>>The reason I guess this, is that the programs have been under development for a >>>long time. They probably started out with one of the representations before >>>bitboards. To change over to bitboards would require some tangible benefit. >>>Since for 32 bit processors, the change is negligible, I strongly suspect that >>>none of the professional programs have done this. >>> >>>However, once the 64 bit processors become mainstream, I expect all of them to >>>make the transition at some point. >> >> >>Don't be so sure. For example in my program I see no part that could be improved >>with bitboards. I just don't need them. >> >>I really think that bitboards have no intrinsic objective advantage. That's just >>another way of representing things. >> >>It is elegant and COULD be used to simplify complex operations, but the key >>point is that in a chess program these complex operations are simply not >>required... >> >>You can give me whatever example of an operation elegantly handled with >>bitboards, but if your example is realistic and is really used in a chess >>program I'm sure I can do the same thing with my data representation with no >>additional cost. >> >>I have heard examples of ways of evaluating passed pawns that were alledgedly >>faster with bitboards, but I do these evaluations in my program without >>bitboards, and without pain... >> >>If you manage to find an occurence where bitboards are really useful and faster, >>I'm pretty sure it will represent less than 1% of CPU usage in a real chess >>program. >> >>It ends up being noise, because a 1% speedup, or even 10%, can be achieved by >>other ways. For example optimizing for the cache architecture of your target >>processor. The intrinsic speed provided by the basic data design (bitboards or >>not) becomes hidden by other very platform specific designs. >> >>The availability of 64 bits processors changes nothing. Unless some 64 bits >>processors are so lousy that 8, 16 and 32 bits operations become slower than 64 >>bits ops...! :) >> >>I don't mean this to be a critic of the bitboard design. Bitboards are really >>very elegant, and certainly very interesting to program. But I see no objective >>reason to chose them because they are more effective. They are not. They are >>approximately as effective as 0x88 or other arrays based designs. >> >> >> Christophe > >I do detection (not evaluation) of passed pawns incrementally. A few ANDs and >all passed pawns are in one bitboard. Since I evaluate all pawns without >scanning them (evaluation is also depending on attack information!), it is >faster than scanning all pawns and check if they are passed. You don't need a bitboard program to do this. You can just store the passed pawn information (in bitboard form or some other form) in the pawn hash table. > >Alessandro
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.