Yes it performed well for Hex8x8; i got a speed up of 60x compared to CPU
when i tested it about 2 years ago on a not-so-modern GPU (128 cores IIRC).
However, the playouts in Hex are much simpler than that of Go.
For instance, I check for termination of game once when the board is
completely full, i.e after all 64
stones are placed. This has allowed me to do only with two bitboards:
empty_squares and white_stones_squares.
It is weird that you don't even need to store black_stones. Also there are
no captures to complicate matters.
I have a chess branch in the github repo that I experimented on, but it
didn't work out well. First, chess is not suitable for monte-carlo search.
Second, board representation requires more register/shared memory so it is
difficult to make one thread do one playout by itself. Right now a warp (32
threads) get the same position from the MCTS tree, then each do their own
playouts. There won't be lots of divergence as all they do is place a stone
until board is completely full. I guess the memory limitation issue affects
Go as well. GPU for Go is definitely harder than Hex8x8, which I handpicked
for better performance. But I believe one should be able to get a good Go
or Checkers engine using MCTS on the GPU.
Daniel
On Fri, Jun 26, 2015 at 6:29 AM, Darren Cook dar...@dcook.org wrote:
It is not exactly Go, but i have a monte-carlo tree searcher on the GPU
for
the game of Hex 8x8
Here is a github link https://github.com/dshawul/GpuHex
The engine looks to be just the middle 450 lines of code; quite compact!
So running playouts on a GPU worked out well?
Would doing the same thing for go be just a matter of writing more lines
of code, or needing more memory on the GPU, or is there some more
fundamental difference between hex and go that makes the latter less
suitable? (e.g. in hex pieces are only added to the board, whereas in go
they can be removed and loops can happen - does that make GPU-ing
algorithms harder?)
Darren
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go