Author: Peter McKenzie
Date: 03:48:12 07/20/99
Go up one level in this thread
On July 19, 1999 at 16:00:31, Scott Gasch wrote: >On July 19, 1999 at 02:27:56, Peter McKenzie wrote: >>It all depends, of course :-) >>LambChop has what I would consider to be a slow NPS rate, and would do about >>25,000 NPS on that machine. This is partly because I try to have a smart >>evaluation, and partly because I've never been totally hung up on speed. Fast >>programs are approximately 10 times faster I think. > >I have messed around a little with the compiler options and a rewrite of the >InCheck function and am now at about 55k nps. > >>- hash the pawn structure evaluation in a separate hash table > >I don't know what you mean by this... A hash table is just a smart way of caching information. Many positions in the search tree have the same pawn structure, so it makes sense to store pawn structure scores with the hope of reusing them thereby saving time. > >>- compute more stuff incrementally (update piece square scores in make/unmake >>function etc) > >This is a good idea. Thanks. > >>Maybe move ordering is slowing you down - take it out and see how the NPS > >I am pretty sure move ordering is not a factor... I am pretty careful here and >the code is fast. How do you know the code is fast? Have you profiled it? Or does it just look fast? My advice is to get a decent amount of quantitative evidence. It may just confirm your initial feeling, or it may surprise you. Either way, you'll know for sure. If you really are doing a full sort on your move list, you can be sure you are wasting alot of time!!! > >>A basic thing: do you have a list of pieces (as well as the basic board >>representation)? In LambChop I have 4 lists: white pieces (excludes pawns, the >>king is always the first in the list), black pieces, white pawns, black pawns. >>I find these data structures handy for alot of things. > >I have no lists, just a board and the locations of the two kings. I have been >thinking about putting the locations of all pieces in a list but it seems that >this might be more overhead than it's worth. No? Well, its really a case of try it and see. But remember that currently every time you generate moves, you must loop over your entire board testing the contents of each square to see if it is occupied by a piece of the appropriate colour. This is a non-trivial amount of work, and it happens tens of thousands of times every second :-) > >>What is your basic board representation? 0x88 is nice, although I use >>Board[120]. There are different tricks for each type of representation... > >Board representation is 0x88. > >Thanks, >Scott
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.