Wow, this is amazing, great read too. I have a few "test spots" I like to use with solvers and yours nailed them.
>A more modern approach instead “re-solves” each spot to a limited search depth and uses a neural network as an approximation function at the depth cutoff.
This sounds very interesting, I'd love to hear more about it. A few years ago a wrote a solver that worked by reducing the entire game tree. It was slow, and couldn't do preflop. It sounds like these re-solves allow preflop solves with needing a massive tree?
mncalc7 18 minutes ago [-]
You should check out https://jax-js.com/. It has parity with quite a large surface area of Jax, and compiles natively in the browser to wasm and webGPU, entirely written in JS.
patrickhulin 6 hours ago [-]
I wanted to build a poker solver that I could host for ~free. This meant running client-side, where the best browser technology is WebGPU. The tensor library I wanted did not exist, but in the LLM era we sometimes don't need libraries at all. I had Codex turn my thousands of lines of PyTorch code into custom WebGPU kernels with parity tests. Codex then spent days optimizing those kernels.
Man was really excited for some poker-themed computer science blogging like back in the day but really I guess shoulda known huh :/.
bluecalm 50 minutes ago [-]
>>A more modern approach instead “re-solves” each spot to a limited search depth and uses a neural network as an approximation function at the depth cutoff. Both tabular (e.g. Piosolver) and neural (e.g. GTOWizard) commercial solvers are available.
PioSOLVER doesn't use any abstractions or cutoff functions. It just solves the whole game without any simplifications other than allowed bet sizes.
The cost is rather large RAM requirements. The advantages is that it's very precise and produces exact results for every hand (it doesn't bundle them).
Rendered at 21:20:08 GMT+0000 (Coordinated Universal Time) with Vercel.
>A more modern approach instead “re-solves” each spot to a limited search depth and uses a neural network as an approximation function at the depth cutoff.
This sounds very interesting, I'd love to hear more about it. A few years ago a wrote a solver that worked by reducing the entire game tree. It was slow, and couldn't do preflop. It sounds like these re-solves allow preflop solves with needing a massive tree?
You can use the solver at https://holdem.computer, and the source is at https://github.com/phulin/poker2.
PioSOLVER doesn't use any abstractions or cutoff functions. It just solves the whole game without any simplifications other than allowed bet sizes. The cost is rather large RAM requirements. The advantages is that it's very precise and produces exact results for every hand (it doesn't bundle them).