Hi,
My single threaded program performs 216 playouts per second (on average 62 'moves').
That's not a lot is it? Or is it?
playouts
playouts
https://www.vanheusden.com/
https://github.com/folkertvanheusden/
https://github.com/folkertvanheusden/
-
- Posts: 219
- Joined: Tue Feb 12, 2008 8:31 pm
- Contact:
Re: playouts
I have just run a benchmark, and Crazy Stone does 4366.81 simulations per second on 19x19, from the empty starting position (Ryzen 7 5800X). This is with patterns and many advanced heuristics. So yes, your playouts are slow.
Without heuristics, it may be around 10k per second. You must be doing something wrong. Are you programming in C++?
For performance, one fundamental aspect is your board data structure. You should not have to loop over a string each time to determine its number of liberties. You need incrementally updated data structures that will tell you immediately how many liberties a string has.
Without heuristics, it may be around 10k per second. You must be doing something wrong. Are you programming in C++?
For performance, one fundamental aspect is your board data structure. You should not have to loop over a string each time to determine its number of liberties. You need incrementally updated data structures that will tell you immediately how many liberties a string has.
Re: playouts
That's quite a difference! DellaBaduck is in C++ indeed.Rémi Coulom wrote: ↑Tue Nov 30, 2021 11:20 am I have just run a benchmark, and Crazy Stone does 4366.81 simulations per second on 19x19, from the empty starting position (Ryzen 7 5800X). This is with patterns and many advanced heuristics. So yes, your playouts are slow.
Without heuristics, it may be around 10k per second. You must be doing something wrong. Are you programming in C++?
I was thinking of incremental updates but I wonder if all the administration won't be negating the speedimprovement. Well the proof is in the eating of the pudding I guessFor performance, one fundamental aspect is your board data structure. You should not have to loop over a string each time to determine its number of liberties. You need incrementally updated data structures that will tell you immediately how many liberties a string has.

https://www.vanheusden.com/
https://github.com/folkertvanheusden/
https://github.com/folkertvanheusden/
Re: playouts
Slight increase to 355 playouts per second (1 thread, 61 stones per playout on average)
https://www.vanheusden.com/
https://github.com/folkertvanheusden/
https://github.com/folkertvanheusden/
-
- Posts: 219
- Joined: Tue Feb 12, 2008 8:31 pm
- Contact:
Re: playouts
Boardsize 9. This version still recreates every chain (string) and so on.Rémi Coulom wrote: ↑Fri Dec 03, 2021 11:42 pmWhich board size?
You must be doing something very wrong.
I transformed the current version into an incremental, but it played even worse (around 75 playouts/s).
I have an idea how to improve that, need to implement it.
https://www.vanheusden.com/
https://github.com/folkertvanheusden/
https://github.com/folkertvanheusden/