Author: Robert Hyatt
Date: 13:51:20 06/21/02
Go up one level in this thread
On June 20, 2002 at 14:32:43, Keith Evans wrote: >On June 20, 2002 at 13:30:28, Eugene Nalimov wrote: > >>Such the experiment will answer the question: "On the 64-bit architecture, how >>much speedup is caused by the 64-bittness"? I.e. let's imagine 32-bit Alpha or >>Itanium2. How slower Crafty will be on such the animal? >> >>I suspect that the difference will be only ~10%. I.e. Alpha and Itanium2 run >>Crafty well not because it uses 64-bit data structures, but because they run >>everything well. >> >>Unfortunately, suggested experiment is flawed. Lot of compilers will generate >>much worse code for the operations with structures than for the operations with >>the builtin types. >> >>Eugene >> > >But if the 32-bit datastructures perform _better_ than Bob predicts, despite the >"much worse code", then the experimental results could still be useful. I agree >that if the performance of the 32-bit datastructures is significantly lower >(matching Bob's prediction) then we won't be able to say whether it's due to the >compiler or just the 32-bit widths. > >Of course this may not motivate Bob to perform the experiment, because it can >only show that his 64-bit bitboard performance claims are a bit exagerrated. If >it's in the other direction then the argument will continue. > >We can only hope that a scientifically minded new chess engine author who is >considering the use of bitboards will do some experimentation on these new >processors and share the results. > >-Keith Did you _ever_ consider that "some scientifically minded authors" might have _already_ done this? You did know that Cray Blitz was a non-bitmap program? You did know that the chess 4.x guys used a non-bitmap program in version 3.x? That early duchess versions were traditional array-based while the last duchess program was bitmap? IE a _bunch_ of us have played with this stuff and decided that 64 bit words offers some unique things that make a lot of sense. Speaking only for myself, I didn't just "switch" for the sake of switching. I studied bitmaps for _years_ prior to making the change. I looked at key parts of the chess engine to see if bitmaps made sense. I concluded "yes". It was a lot of work to start over from scratch yet again. However, to imply that I did it without due consideration is a bit of a wild stretch. I did it after _considerable_ study and deliberation. I ran tests on 32 and 64 bit machines in the process. It makes good sense. I won't say the gain is 2x, because not every instruction is fiddling with 64 bit values. But the gain is certainly considerable, just by eliminating the duplicate instructions required on 32 bit machines... Anybody interested can try both approaches and make the choice themselves. I've not suggested that _anybody_ scrap what they have done. I have repeatedly said that bitmaps on a Intel 32 bit platform are "break even". They give some advantages (generating only captures, easily, is one). The extra instructions are bad, although the super-scalar intel machines tend to hide a lot of that since the instructions can issue in parallel to different pipes. On 64 bit architectures, the 64 bit parts of the engine simply run faster, period. That represents a significant part of the work being done. MakeMove() for example is just about exclusively about updating 64 bit values and nothing else. Ditto for UnmakeMove(). Those two functions, by themselves, are 15% of Crafty's total cpu usage. And they are nearly 100% 64 bit operations with a very few branches thrown in. 64 bit architectures definitely help those pieces. There are others that are equally as complex and intensive on 64 bit operations. I didn't do it on a lark. I did it after a _lot_ of consideration.
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.