Jump to content

Efficiently updatable neural network

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 2a02:2454:8d62:5000:f50e:b7c5:1980:e003 (talk) at 12:30, 24 July 2021 (Use in Alpha-beta Search: Added a reference about 'NNUE is used primarily for the leaf nodes of the a-b tree'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An efficiently updatable neural network (NNUE, sometimes stylised as ƎUИИ) is a neural network-based evaluation function that runs efficiently on central processing units without a requirement for a graphics processing unit (GPU). NNUE was invented by Yu Nasu and introduced to computer shogi in 2018.[1][2] On 6 August 2020, NNUE was for the first time ported to a chess engine, Stockfish 12.[3][4]. As of 2021, all of the top rated classical chess engines have a NNUE implementation to remain competetive.

NNUE, a neural network–based evaluation function, is used primarily for the leaf nodes of the Alpha–beta tree.[5] While being slower than traditional evaluation functions, NNUE does not suffer from the 'blindness beyond the current move' problem.

Stockfish uses NNUE for Candidate Moves, Move Selection and Move Generation.[6]

Advantage over dedicated GPUs

Compared to Neural Network Evaluation based on dedicated GPUs, NNUE avoids idle times during the substantial data transfer operations between GPU and CPU required before and after each evaluation.[citation needed]

However, more complex architectures like Xeon Phi, Larrabee, or Tegra, that provide zero-copy unified physical memory between the CPU and GPU, could be more suitable for use with GPUs.[citation needed]

Architecture of the shogi implementation

The neural network consists of four weight layers: W1 (16-bit integers) and W2, W3 and W4 (8-bit). Incremental computation and single instruction multiple data (SIMD) techniques are used with appropriate intrinsic instructions, specifically in the 2018 computer shogi implementation VPADDW, VPSUBW, VPMADDUBSW, VPACKSSDW, VPACKSSWB and VPMAXSB.[1]

See also

References

  1. ^ a b Yu Nasu (April 28, 2018). "Efficiently Updatable Neural-Network-based Evaluation Function for computer Shogi" (PDF) (in Japanese).
  2. ^ Yu Nasu (April 28, 2018). "Efficiently Updatable Neural-Network-based Evaluation Function for computer Shogi (Unofficial English Translation)" (PDF).
  3. ^ "Introducing NNUE Evaluation". 6 August 2020.
  4. ^ Joost VandeVondele (July 25, 2020). "official-stockfish / Stockfish, NNUE merge".
  5. ^ "Stockfish 12". Stockfish Blog. Retrieved 19 October 2020.
  6. ^ "Stockfish - Chessprogramming wiki". www.chessprogramming.org. Retrieved 2020-08-18.