GithubHelp home page GithubHelp logo

rouhi1 / seer-nnue Goto Github PK

View Code? Open in Web Editor NEW

This project forked from connormcmonigle/seer-nnue

0.0 0.0 0.0 3.14 MB

UCI chess engine using neural networks for position evaluation

License: GNU General Public License v3.0

C++ 93.47% Python 0.15% C 6.07% Makefile 0.31%

seer-nnue's Introduction

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/0x35ddef41/q0x35ddef41.bin
make pgo EVALFILE=eval.bin

seer-nnue's People

Contributors

connormcmonigle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.