On 2012-06-09 02:53,
mu...@compuplus.net wrote:
> On Saturday, June 9, 2012 12:13:31 AM UTC-6, Michael Petch wrote:
>
>> On 2012-06-08 23:31,
mu...@compuplus.net wrote:
>
>>> The difference between supremo and grandmaster sure doesn't seem like 20 fold.
>
>> You were quick to pick up on something erroneous, and not sure why I
>> typed 20. It is more like ~20^2 or ~400. Thanks.
>
Previously I gave a couple number. 20 times and 400. In certain
respects, both these numbers are accurate. with certain assumptions.
Assume one evaluation in the neural net is equal to one time unit AND
that there is no pruning, no caching, and no filtering, then this would
be an approximation (not that it will vary depending on the position or
roll being analysed)
0-ply is 20 units
1-ply is 8,000 units (400 times more than 0-ply)
2-ply is 160,000 units (20 times more than 1-ply)
3-ply is 3,200,000 units (20 times more than 2-ply)
4-ply is 64,000,000 units (20 times more than 3-ply)
These numbers would have been true in the original stages of GNUBG's
development. A number of enhancements were added over the years, which
included the cache, pruning, and filters. The cache is used to store
positions previously computed on a given ply level and other settings.
Pruning is a smaller neural net that is used to more quickly rank legal
moves at plies greater than 0. Filters limit the number of candidate
positions that will continue to be processed at any given ply, by
skipping over what appear to be obviously bad plays.
Since all these techniques speed things up, and can vary between moves
and decisions being analysed there is no hard and fast numbers, however
based on some observations this might give a very rough idea of the
speed differences observed with pre-defined analysis levels. Pruning is
on by default for all levels for plies > 0, cubeful evaluations, and no
noise.
Expert (0-ply chequer, 0-ply cube, Filter N/A) is 20 units
World Class (2-ply chequer, 2-ply cube, Filter Normal) is 40,000 units
Supremo (2-ply chequer, 2-ply cube, Filter Large) is 80,000 units
GrandMaster (3-ply chequer, 3-ply cube, Filter Large) 400,000 units
4ply (4-ply chequer, 4-ply cube, Filter Large) is 8,000,000
The observation that there is a bigger jump between 4ply and grandmaster
compared to GM and Supremo, or Supremo to WorldClass is accurate. This
has to do with the how the filters are set for each ply level on a given
analysis setting, and the amount of caching that is done, and the effect
of pruning.
With that being said, one thing I'd like to say about all this is that
you can probably double the speed of 4-ply, by manually setting 4-ply
and then changing the default move filter from large to normal. All
though less accurate, I believe the errors involved are probably
marginal. Note the move filter was the only difference between Supremo
and WorldClass.
4-ply with a normal filter would be about 4,000,000 units.
If the next question is, would it be beneficial to consider a normal
filter on 4 ply rather than large? The answer is that it is something I
will present to the GNUBG mailing list.
Something people should be aware of is that the normal evaluation engine
in GNUBG is not multi-threaded. The down side is that if you play
against the bot or do individual hint/evaluations it will only use one
core on your system. So if you have a large multicore system, it won't
make any difference, and this is probably the biggest single limitation
present for those playing against the bot.
Where multiple cores come into play is when you do a rollout, or analyse
a session (session is more than one move).