Author: Eugene Nalimov
Date: 17:00:47 11/28/00
Go up one level in this thread
On November 28, 2000 at 18:20:01, Will Singleton wrote: >On November 28, 2000 at 16:06:11, Bruce Moreland wrote: > >>On November 28, 2000 at 14:06:27, Andrew Williams wrote: >> >>>On November 28, 2000 at 12:52:57, Scott Gasch wrote: >>> >>>>Hi, >>>> >>>>I posted a couple of messages about move ordering yesterday and wanted to share >>>>some results from my (limited) testing. I ended up implementing the suggested >>>>"apparently losing captures" (MVV/LVA) after all others order. In one test >>>>position this resulted in a tree 200k nodes larger at 8 ply but in two others it >>>>resulted in a marginally smaller (under 40k nodes) tree at 8 ply. I will do >>>>more testing on this matter but it may be a moot point because I intend to write >>>>a SEE pretty soon. >>>> >>>>I also did some experimenting with ordering captures that take the last moved >>>>enemy piece. At low search depth this seems to make some difference but at >>>>higher depth this heuristic actually grew the tree in all three test positions > I tried. >>>> >>>>I also did some playing with history weight and settled on hist[x][y] += (2 << >>>>depth). >>> >>>I use history[whoseTurn][frsq][tosq] += (depthremaining*depthremaining) >>>I have a separate table for white and black. Every few plies I divide >>>this number back by a lot (can't remember how much or how often). >> >>Why does everyone think that a move that cuts off after a deep search is more >>likely to produce cutoffs elsewhere in the tree, than one that cuts off after a >>shallow search? >> >>That multiplication is expensive. Does it achieve anything? >> >>bruce > >How expensive? I've got multiplications and divisions all over my program. I >never thought it would amount to more than a few nps. > >Will For Itanium, best code sequence for 32-bit multiplication takes 9 clock cycles (it is produced by MS compiler; Intel compiler's version takes 19 clock cycles). 32-bit division takes 37 cycles. And in the best case Itanium can execute 6 simple instructions per clock cycle (i.e. 2 memory loads, 2 comparisons, and 2 branches). Of course you can do several divisions/multiplications in parallel, but my guess it will not help you in the chess engine. Eugene
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.