All Projects → connormcmonigle → seer-nnue

connormcmonigle / seer-nnue

Licence: GPL-3.0 license
UCI chess engine using neural networks for position evaluation

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to seer-nnue

zahak
A UCI compatible chess AI in Go
Stars: ✭ 20 (-66.67%)
Mutual labels:  chess-engine, uci-chess-engine
Koivisto
UCI Chess engine
Stars: ✭ 93 (+55%)
Mutual labels:  chess-engine, uci-chess-engine
chess22k
Chessengine written in Java
Stars: ✭ 26 (-56.67%)
Mutual labels:  chess-engine
Demolito
UCI Chess Engine
Stars: ✭ 41 (-31.67%)
Mutual labels:  chess-engine
Tucano
Tucano Chess Engine
Stars: ✭ 17 (-71.67%)
Mutual labels:  chess-engine
stockfish-chess-web-gui
Responsive chess web GUI to play against the Stockfish 10 chess engine. Multiple web GUI implementations have also been included.
Stars: ✭ 21 (-65%)
Mutual labels:  chess-engine
Walleye
A chess engine written from scratch in Rust ♞
Stars: ✭ 82 (+36.67%)
Mutual labels:  chess-engine
Realtime-OpenCV-Chess
♔ Chess-playing with Open-CV [Human vs AI (Stockfish engine)]
Stars: ✭ 18 (-70%)
Mutual labels:  chess-engine
ConvChess
Convolutional Neural Networks learns to play chess moves
Stars: ✭ 14 (-76.67%)
Mutual labels:  chess-engine
fastchess
Predicts the best chess move with 27.5% accuracy by a single matrix multiplication
Stars: ✭ 75 (+25%)
Mutual labels:  chess-engine
berserk
UCI Chess Engine written in C
Stars: ✭ 57 (-5%)
Mutual labels:  chess-engine
liground
A free, open-source and modern Chess Variant Analysis GUI for the 21st century
Stars: ✭ 41 (-31.67%)
Mutual labels:  chess-engine
Sunfish
Sunfish: a Python Chess Engine in 111 lines of code
Stars: ✭ 2,254 (+3656.67%)
Mutual labels:  chess-engine
littlewing
Chess engine written in Rust ♛
Stars: ✭ 27 (-55%)
Mutual labels:  chess-engine
shallow-blue
UCI Chess engine written in C++11
Stars: ✭ 55 (-8.33%)
Mutual labels:  chess-engine
magic-bits
A C++ header-only library for efficient move generation in Chess using "magic bitboards" technique
Stars: ✭ 26 (-56.67%)
Mutual labels:  chess-engine
bot-o-tron
Try out lichess' bot interface
Stars: ✭ 36 (-40%)
Mutual labels:  chess-engine
Bit-Genie
UCI chess engine in C++
Stars: ✭ 19 (-68.33%)
Mutual labels:  chess-engine
uci
A thin wrapper on a uci chess engine
Stars: ✭ 33 (-45%)
Mutual labels:  chess-engine
lc0-docker
lc0docker: run lc0 chess client and lichess bot under Docker and Kubernetes
Stars: ✭ 26 (-56.67%)
Mutual labels:  chess-engine

Seer

Seer is an original, strong UCI chess engine. Seer relies on a neural network estimating WDL probabilities for position evaluation. Seer's network is trained through a novel retrograde learning approach starting only from 6-man syzygy EGTB WDL values. These initial WDL scores are then iteratively backed up to 32-man chess positions using Seer's search to find continuations from N-man chess positions to N-1-man chess positions (implementation). Seer uses a conventional alpha-beta search combined with "Lazy SMP" (shared transposition table) for multithreading support.

UCI Options

  • OwnBook (specifies whether or not to use a separate opening book)
  • BookPath (path to a file containing book positions in a supported format)
  • Threads (for every thread doubling, a gain of about 70-80 elo can be expected)
  • Hash (the amount of the memory allocated for the transposition table (actual memory usage will be greater))
  • Weights (the absolute path to a binary weights file. If the default "EMBEDDED" path is chosen, the embedded weights will be used.)

Features

  • From scratch neural network training and execution (using OpenMP SIMD directives and SIMD intrinsics) implementation (training scripts use PyTorch for GPU acceleration and can be found here).
  • Plain magic bitboard move generation with constexpr compile time generated attack tables.
  • Principal variation search inside an iterative deepening framework
  • Lockless shared transposition table (using Zobrist hashing)
  • Move Ordering (SEE for captures + Killer Move, Combined Butterfly History, Counter Move History and Follow Up History for quiets)
  • History pruning as well as SEE pruning in QSearch
  • History extensions
  • Null move pruning
  • Static null move pruning (reverse futility pruning)
  • Futility pruning
  • Late move reductions
  • Aspiration windows

Compiling

The latest network can be found here

cd build
wget -O eval.bin https://github.com/connormcmonigle/seer-training/releases/download/0xbe759eb2/0xbe759eb2.bin
make pgo EVALFILE=eval.bin
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].