My understandings is that light playout should implement Bruegmann's original proposal, which is Go rule plus basic patterns that avoid self-eye filling. Our FPGA implementation does this while cutting 2 corners, (1)ko violations are not checked; (2)suicides are allowed. We have tested in software,and found no significant difference in MC's ability to evaluate board positions with or without these 2 corners. I wonder what corners did libego cut?
Gathering pieces of information in this thread, it seems that the light playout implementation on CPU is between 90k-170k/core on the latest hardware i7 3.2 GHz. (1) libego: 40k/GHz -> 40k x 3.2= 130k @ 3.2GHz (2) libego: 130k @ 2.5GHz -> 170k @ 3.2GHz (3) Mark boon's implementation: 70k @ 2.6 -> 90k @ 3.2GHz Thanks for the responses. Fuming On Sat, Jun 12, 2010 at 2:52 AM, Mark Boon <[email protected]> wrote: > On Thu, Jun 10, 2010 at 11:09 PM, Erik van der Werf > <[email protected]> wrote: > > Lukasz Lew's libego used to have the fastest light playouts. IIRC some > > years ago it already got over 100k playouts per second for 9x9 on one > > core. I guess it should now be possible to get over 200k light > > playouts per second. Others on this list may have more accurate > > numbers. > > Cores didn't really get much faster recently, so what makes you think > it could be twice as fast now? > > A while ago I took a peek at his code, but I found it hard to > understand. In a logical sense I saw some places that seem sub-optimal > from an algorithmic point of view. But I figured the numbers speak for > themselves. At the time it was reported it did something like 40K > playouts per Ghz. But I didn't manage to verify this as I never got > his code to compile. It's probably a bit too Linux specific in its > setup. The main reason I didn't look into it further (apart from lack > of time) is that AFAIK it doesn't keep liberties. But I think it does > keep a few other useful things. > > People refer to 'light' playouts but may mean different things. I like > to at least make the distinction between playouts that keeps correct > liberty counts and playouts with pseudo liberties. In my personal > code, pseudo liberties is only marginally faster than real liberties > so I find it highly preferable to keep real liberties so it can be > used by a tactical module. But I didn't spend nearly as much time as > Lukasz trying to optimize it. > > The other thing that needs care when touting playout speeds is whether > this is purely measuring playouts, or playouts while building a MCTS > tree (or hashtable). > > My Java implementation of light playouts with liberties does something > like 30K-35K per second on one core. I think it's similar on a 2.6Ghz > i5 as on an older 2.8Ghz. The same code directly translated to C is > about twice as fast. > > Mark > _______________________________________________ > Computer-go mailing list > [email protected] > http://dvandva.org/cgi-bin/mailman/listinfo/computer-go >
_______________________________________________ Computer-go mailing list [email protected] http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
