-
Notifications
You must be signed in to change notification settings - Fork 116
development questions #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi Stan,
You mean
[edited]
You mean the eyefill check in
Not afaik, except pondering which is disabled by default. Play-testing welcome, haven't checked in a while. For low playouts it does better now actually because of MM (#81).
Not sure i understand the question. What do you mean by 'unlimited tensor units' ?
Yes
Yes, time permitting. |
Hey @lemonsqueeze, Thanks for taking the time to answer.
Is it guaranteed for tree nodes to be deallocated by the same thread that created them? If so, we can have a per-thread allocator. Given nodes are of the same size, a bitmap will suffice for bookkeeping purposes.
Try reverting my old commit that reduced padding, in effect 10% of
Both are hairy... For the latter, could there possibly be a lookup table that rejects many cases without having too much overhead on its own? Getting an understanding for
Sorry, I phrased it badly. Let's try again: is the machine learning structure in Pachi's DCNN much worse than AlphaGo in principle? What is the general principle behind the current code? I'm too much familiar with classical symbolic programming and this can be a great opportunity for getting into machine learning stuff. Are there any particular entry points (files, functions) for the ML bits to familiarize oneself with it? |
iirc nodes are only deallocated when the tree is pruned at the end of genmove, so shouldn't be an issue.
ok, will try. good to know.
imo performance isn't so much an issue right now, playouts are pretty fast already. Improving the quality of playouts would be much better, they're very noisy right now so it needs lots of them ... Maybe time to try other approaches, using a learned policy or RL policy training maybe... Another area if you want to help would be finding good parameters for MM (#93).
Right now Pachi uses Detlef's 54% dcnn which is similar to what the first alphago used as policy network (the one trained from human games, not the RL one). The big difference is Pachi uses it for root node only whereas alphago and others use it for every node. There's no ML dcnn code in Pachi itself actually. I believe Detlef trained it more or less like in maddison, huang & silver's paper ("move evaluation in go using deep convolutional neural networks"). There have been many improvements since then of course. If you plug in Leela-zero's dcnn it will probably be around 5d, even root node only. |
Would it be better to consult the network for at least couple dozen moves? Is this a TODO item or is there a deeper reasoning behind it? Do you prefer fast or heavy playouts?
How many mid-range-gaming GPUs do you need rolling 24/7 and for how long? |
In theory yes. I did experiments with that early on, the problem is it introduces time and prior unbalance between the dcnn and non-dcnn nodes, but maybe there's a way to make it work. The big TODO item here is gpu mode Pachi with dcnn at every node, this would make it about 2 stones stronger. iirc from the darkforest paper there are some issues with parallel dcnn to work around but shouldn't be too hard. I don't have a gpu so i'm not interested in that but that's the way forward strength-wise. Would also make it possible to use value network for evaluation instead of playouts, but at this point might as well just use leela-zero =) |
Hey, Thanks for pointing me toward the leela-zero project. Apparently I've been living in the dark for the past few months 😃. Using CNN for each move can definitely change things if using a heavy multi-layer network on a GPU. Leela-zero still has problems with ladders and seki when using few playouts that pachi never had from my experience. Note that other programs are also using Leela's network, or Leela itself with networks trained with proprietary compute resources. Cheers, and sorry for leaving this conversation unresolved for a bit. |
Oh, just realized there's an area that could use optimization: spatial pattern lookup in pattern.c: |
Hey,
I haven't had an opportunity to ask few of these:
node.h
still relevant? Does it make sense to implement a tagged allocator or some other per-thread page allocator? Is there some lower or upper bound heuristic for the node count?(edited since initial posting)
The text was updated successfully, but these errors were encountered: