Author: Tony Werten
Date: 03:35:42 04/19/03
Go up one level in this thread
On April 19, 2003 at 05:08:40, Uri Blass wrote: >On April 19, 2003 at 04:54:29, Tony Werten wrote: > >>On April 19, 2003 at 04:07:37, Uri Blass wrote: >> >>>On April 19, 2003 at 03:37:06, Tony Werten wrote: >>> >>>>On April 17, 2003 at 20:35:35, James Robertson wrote: >>>> >>>>>Out of curiosity I tested just the move generation and basic board functions of >>>>>my bitboard chess program on several different computers. My home computer is a >>>>>Pentium 933mhz, and the other computers I used were Athlons in the 1.6ghz range. >>>>> >>>>>My program's move generator runs at roughly the same speed on both systems. I >>>>>was surprised and tested using several different compilers (VC5, VC6, .NET, >>>>>gcc), under Windows and under Linux. To compare more easily, I wrote a simple >>>>>non-bitboard move generator and tested this on all of the machines. The speed >>>>>differences scaled with the speed of the processors, which seemed logical. >>>>>However, I still cannot explain why the bitboard functions are so much slower on >>>>>the faster computers. The only difference I can see is that my home computer is >>>>>a pentium and the others are athlons. >>>>> >>>>>It seems strange that this would make such a large difference. Can anyone give >>>>>any reasons why? I used no assembly, just C/C++ code, with all the default >>>>>compiler options on all tests. >>>> >>>>I think it's because bitboards tend to fill up the caches, so memory becomes the >>>>bottleneck. >>>> >>>>With other approaches this doesn't happen, ( until you add the big stuff like >>>>eval ) so all things stay in chache wich makes it (almost) only processor >>>>limited. >>>> >>>>Tony >>> >>>Does it mean that bitboard chess programs or programs with big evaluation are >>>basically optimized for the old hardware because they cannot get much from new >>>hardware? >> >>No, because you're doing more then, wich can go faster with faster hardware. ie >>You don't reach the move generation bottleneck, but have others. >> >>But if all you are doing, has a memory bottleneck (wich happens when only >>generating moves with bitboards ), a faster cpu won't help very much. >> >>Tony > >The question is how can I identify memory bottleneck. > >I use bitboards only for pawn structure but I have a big move generator(some >thousands of C lines). I don't think the amount of code counts. It's the amount of datastructures it operates on. Whatever you do in pawnstructure doesn't count. Time will be close to 1 memory lookup in the pawnhashtable. > >Is the only way to buy fast hardware and see if my program is faster on faster >hardware or is there a better way? Almost any full chessprogram will always be faster on faster processors. The only exceptions I can think of could be those slow, highly positional/selective ones. For those I'd recommand not upgrading to a higher frequency processor, but going to one with bigger caches. But still, XiniX is a slow positional program ( ie 150 Kn/s in opening/early middlegame, max 400 Kn/s in endgame) and it's profiting a lot from faster cpu's. James' tests only give an upper limit for speed. A full chessprogram will not be able to reach that speed, at best you would come within a factor 5. Tony > >Uri
This page took 0.01 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.