3 ms·
NNUE is weird. No one outside the chess/shogi community talks about it because they seem to have a very case of strong not-invented-here syndrome. It's hand-opt
by nl 6y ago
NNUE is weird. No one outside the chess/shogi community talks about it because they seem to have a very case of strong not-invented-here syndrome. It's hand-optimised CPU code that doesn't (yet) run on the GPU (which is why it is "faster").
To be fair, they do want to embed it into a consumer friendly application, and the integration for embedding TF or something that can run pytorch models on a GPU without python is non-trivial.
If someone ported it to a GPU, it almost certainly would be faster. See http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76986 http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76986
There is a PyTorch port available, but no benchmarks unfortunatly. It does seem to be fairly widely used for training though, which is indicative of the speed gains available.
- hakuseki 6y agoIs NNUE used by any Go AI? I've only heard of it being used for shogi and chess.
- nl 6y agoYes you are correct. I wrote "go" when I meant "shogi" - fixed.
- mantap 6y agoGPU have high latency. For a chess engine like stockfish which is designed to search as many positions as possible, the latency of a GPU is a big problem. Engines like LC0 that do use the GPU work by searching fewer positions but with a heavier eval function. This makes the latency less relevant because it is a smaller percentage of the GPU time.
- nl 6y ago3D computer games are much more latency sensitive than chess, and work on GPUs very successfully. This seems like a solvable problem.
- johbjo 6y agoBoard game AI works by searching through the state space, and evaluating each state with the neural network, then picking the move with best expectation. So it needs to load the comparatively tiny game state (chess board) into the GPU for each evaluation. The more game states it can evaluate per move, the better it is. It can be in the order of millions.