[Computer-go] Using GPUs?
dshawul at gmail.com
Fri Jun 26 23:02:19 PDT 2015
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.
On Fri, Jun 26, 2015 at 6:29 AM, Darren Cook <darren at dcook.org> wrote:
> > It is not exactly Go, but i have a monte-carlo tree searcher on the GPU
> > 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?)
> Computer-go mailing list
> Computer-go at computer-go.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Computer-go