[computer-go] Trying to understand speed metrics

2009-08-31 Thread Brian Sheppard
Currently I only get about 19k playouts per second on a 2 core
Core2Duo 2.3 GHz, on 9 line empty board.  I started at about
55k playouts per second on one core (for a UCT search).

So, David, what happens when you are supply useful information?
People impose on you for even more...

I have seen playouts/second numbers a few times, and I always
have trouble relating them to what I am working on. Usually other
engines are 100x faster than mine, but sometimes only 10x. :-)

The 19K/sec speed represents the first time that any engine
has claimed to be *less* than 5x faster than mine, accounting
for a difference in hardware. So I want to make sure that I understand.

I am trying to get a handle on how fast a Core2 Duo 2.3GHz is,
and it turns out that there is a wide range. The benchmarks at
http://www.cpubenchmark.net/cpu_list.php show several parts that
might match, with ratings as follows:

Intel Core2 Duo E6550 @ 2.33GHz = 1415 rating (higher is better)
Intel Core2 Duo P8400 @ 2.26GHz = 1542 rating
Intel Core2 Duo P7550 @ 2.26GHz = 1796 rating

Is your chip one of these? And you are using both cores?

Another thing I notice about my engine is that playouts/second
drops as the UCT tree becomes larger. For instance, between 10K
trials and 100K trials the rate drops by ~20%. Profiling shows
that this is because longer variations spend more time in selectBest(),
giveCredit(), progressiveWidening(), and other tree management routines.

So, a few questions:

1) are your measurements also in the context of a UCT tree?
2) what slowdown do you observe as search progresses?

Your answers will go a long way towards helping me to understand
how a world-class engine performs. I appreciate that you help the
community in this way.

TIA,
Brian

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Dynamic komi at high handicaps

2009-08-31 Thread Folkert van Heusden
 My suggestion is to modify a program such as fuego to follow one of the
 algorithms as suggested - then test it with a large sample of games. If

How? At CGOS?
Because i noticed that twogtp.pl says eg constantly that stop-0.4 wins
of 0.5 while at cgos I see the opposite.



Folkert van Heusden

-- 
Feeling generous? - http://www.vanheusden.com/wishlist.php
--
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


[computer-go] MoGo policy: capture stones anywhere?

2009-08-31 Thread Peter Drake
MoGo's playout policy (at one time) is given in section 3.2 of Gelly  
et al's paper, Modification of UCT with Patterns in Monte-Carlo Go:


We describe briefly how the improved random mode generates moves. It  
first verifies
whether the last played move is an Atari; if yes, and if the stones  
under Atari can be saved
(in the sense that it can be saved by capturing stones or increasing  
liberties), it chooses one
saving move randomly; otherwise it looks for interesting moves in the  
8 positions around the
last played move and plays one randomly if there is any; otherwise it  
looks for the moves
capturing stones on the Go board, plays one if there is any. At last,  
if still no move is

found, it plays one move randomly on the Go board.

We've implemented much of this, which has made Orego considerably  
stronger. The problem is with this part:


otherwise it looks for the moves capturing stones on the Go board

Does this really mean traversing the entire board looking for  
captures? Doing so seems to create a catastrophic speed hit.


Peter Drake
http://www.lclark.edu/~drake/



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] MoGo policy: capture stones anywhere?

2009-08-31 Thread terry mcintyre
If you maintain a list of strings ( connected groups ) of stones and their 
liberty counts - or perhaps the actual liberties - it should be fairly quick to 
find a string with just one liberty.  In any case, if I read the explanation 
correctly, this happens infrequently, if several less-expensive tests fail; the 
cost would be amortized over many trials.

 Terry McIntyre terrymcint...@yahoo.com
And one sad servitude alike denotes
The slave that labours and the slave that votes -- Peter Pindar





From: Peter Drake dr...@lclark.edu
To: Computer Go computer-go@computer-go.org
Sent: Monday, August 31, 2009 9:56:16 PM
Subject: [computer-go] MoGo policy: capture stones anywhere?

MoGo's playout policy (at one time) is given in section 3.2 of Gelly et al's 
paper, Modification of UCT with Patterns in Monte-Carlo Go:

We describe briefly how the improved random mode generates moves. It first 
verifies
whether the last played move is an Atari; if yes, and if the stones under Atari 
can be saved
(in the sense that it can be saved by capturing stones or increasing 
liberties), it chooses one
saving move randomly; otherwise it looks for interesting moves in the 8 
positions around the
last played move and plays one randomly if there is any; otherwise it looks for 
the moves
capturing stones on the Go board, plays one if there is any. At last, if still 
no move is
found, it plays one move randomly on the Go board.

We've implemented much of this, which has made Orego considerably stronger. The 
problem is with this part:

otherwise it looks for the moves capturing stones on the Go board

Does this really mean traversing the entire board looking for captures? Doing 
so seems to create a catastrophic speed hit.

Peter Drake
http://www.lclark.edu/~drake/



___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/



  ___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

RE: [computer-go] Trying to understand speed metrics

2009-08-31 Thread David Fotland
I had similar trouble in the beginning trying to compare my results to
published results, both for speed and win rates.  I have an E6550 at 2.33
GHz.  I'm using both cores.  This is a UCT search, biased by the Many Faces
of Go move generator, with fairly stupid playouts.  Currently I don't expand
a move at the leaf until it has been visited four times, but each playout
starts again at the root.  Otherwise I run out of UCT memory.

I see a slight slowdown (9x9 board, move 3, to avoid my very very small
opening book):

20K playouts @ 20.7 K/s

100K playouts @ 19.7 K/s

470K playouts @ 17.7 K/s

I don't have access to a profiler now, but I think it spends about 30% of
the total time in Many Faces' move generator.

My early UCT tests, with simple playouts and 3x3 patterns and no progressive
widening, and no Many Faces' help, ran at about 34K playouts per second on a
single core of this same machine.  Smarter search has reduced the speed over
3x.  This early, fast version beat gnugo 31% of the time on 9x9 with 3
minutes per game.  The current version beats gnugo 19x19 83% of the time
with 10K playouts per move.  I don't test any more against gnugo 9x9, but
when I stopped, it was beating it 91% of the time with 5K playouts per move.
(gnugo for me is always 3.7.10 level 10 with lots of time).

David

 -Original Message-
 From: computer-go-boun...@computer-go.org [mailto:computer-go-
 boun...@computer-go.org] On Behalf Of Brian Sheppard
 Sent: Monday, August 31, 2009 11:24 AM
 To: computer-go@computer-go.org
 Subject: [computer-go] Trying to understand speed metrics
 
 Currently I only get about 19k playouts per second on a 2 core
 Core2Duo 2.3 GHz, on 9 line empty board.  I started at about
 55k playouts per second on one core (for a UCT search).
 
 So, David, what happens when you are supply useful information?
 People impose on you for even more...
 
 I have seen playouts/second numbers a few times, and I always
 have trouble relating them to what I am working on. Usually other
 engines are 100x faster than mine, but sometimes only 10x. :-)
 
 The 19K/sec speed represents the first time that any engine
 has claimed to be *less* than 5x faster than mine, accounting
 for a difference in hardware. So I want to make sure that I understand.
 
 I am trying to get a handle on how fast a Core2 Duo 2.3GHz is,
 and it turns out that there is a wide range. The benchmarks at
 http://www.cpubenchmark.net/cpu_list.php show several parts that
 might match, with ratings as follows:
 
 Intel Core2 Duo E6550 @ 2.33GHz = 1415 rating (higher is better)
 Intel Core2 Duo P8400 @ 2.26GHz = 1542 rating
 Intel Core2 Duo P7550 @ 2.26GHz = 1796 rating
 
 Is your chip one of these? And you are using both cores?
 
 Another thing I notice about my engine is that playouts/second
 drops as the UCT tree becomes larger. For instance, between 10K
 trials and 100K trials the rate drops by ~20%. Profiling shows
 that this is because longer variations spend more time in selectBest(),
 giveCredit(), progressiveWidening(), and other tree management routines.
 
 So, a few questions:
 
 1) are your measurements also in the context of a UCT tree?
 2) what slowdown do you observe as search progresses?
 
 Your answers will go a long way towards helping me to understand
 how a world-class engine performs. I appreciate that you help the
 community in this way.
 
 TIA,
 Brian
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


RE: [computer-go] MoGo policy: capture stones anywhere?

2009-08-31 Thread David Fotland
I maintain a list of strings with exactly one liberty.  If I disable the
code to track one liberty groups and generate capture moves the speed goes
up from 17.7 K playouts/s to 18.1K playouts/s, so it's a small difference,
probably not statistically significant.

David

 -Original Message-
 From: computer-go-boun...@computer-go.org [mailto:computer-go-
 boun...@computer-go.org] On Behalf Of Peter Drake
 Sent: Monday, August 31, 2009 9:56 PM
 To: Computer Go
 Subject: [computer-go] MoGo policy: capture stones anywhere?
 
 MoGo's playout policy (at one time) is given in section 3.2 of Gelly
 et al's paper, Modification of UCT with Patterns in Monte-Carlo Go:
 
 We describe briefly how the improved random mode generates moves. It
 first verifies
 whether the last played move is an Atari; if yes, and if the stones
 under Atari can be saved
 (in the sense that it can be saved by capturing stones or increasing
 liberties), it chooses one
 saving move randomly; otherwise it looks for interesting moves in the
 8 positions around the
 last played move and plays one randomly if there is any; otherwise it
 looks for the moves
 capturing stones on the Go board, plays one if there is any. At last,
 if still no move is
 found, it plays one move randomly on the Go board.
 
 We've implemented much of this, which has made Orego considerably
 stronger. The problem is with this part:
 
 otherwise it looks for the moves capturing stones on the Go board
 
 Does this really mean traversing the entire board looking for
 captures? Doing so seems to create a catastrophic speed hit.
 
 Peter Drake
 http://www.lclark.edu/~drake/
 
 
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/