Coder Social home page Coder Social logo

sahamithi2022 / fire Goto Github PK

View Code? Open in Web Editor NEW

This project forked from firefather/fire

0.0 0.0 0.0 85.4 MB

a strong open-source freeware UCI chess engine

License: GNU General Public License v3.0

Shell 0.59% C++ 92.72% C 5.18% Makefile 1.48% Batchfile 0.03%

fire's Introduction

fire

alt tag

fire self-play nnue

features

  • c++20
  • windows & linux
  • uci
  • 64-bit
  • smp (to 256 threads)
  • configurable hash (to 1024 GB)
  • ponder
  • multiPV
  • analysis (infinite) mode
  • chess960 (Fischer Random)
  • syzygy tablebases
  • adjustable contempt setting
  • fast perft & divide
  • bench (includes ttd time-to-depth calculation)
  • timestamped bench, perft, & divide log files
  • asychronous cout (acout) class using std::unique_lockstd::mutex
  • uci option EngineMode random w/ uniform_real_distribution & mesenne_twister_engine
  • uses a unique NNUE (halfkp_256x2-32-32) evaluation
  • fast alpha-beta search
  • optional experimental MCTS-UCT search (Monte Carlo Tree Search w/ Upper Confidence Bounds Applied to Trees) pure/no minmax

fire-9 is now available

games (+win, =draw, -loss) (%)
fire-9_x64_bmi2 3460 16384 (+5968,=4937,-5479) 51.5 %
vs.
stockfish-15 3861 863 (+715,=135,-13) 90.7 %
komodo-dragon-3.1 3838 863 (+702,=141,-20) 89.5 %
berserk-9 3754 863 (+631,=190,-42) 84.1 %
koivisto_8.0 3637 863 (+501,=261,-101) 73.2 %
rubiChess-20220813 3564 863 (+386,=338,-139) 64.3 %
seer-v2.5 3504 862 (+322,=324,-216) 56.1 %
rofChade-3.0 3492 862 (+302,=336,-224) 54.5 %
slow64-2.9 3452 863 (+254,=336,-273) 48.9 %
rebel-15.1 3450 862 (+245,=348,-269) 48.6 %
wasp-6.00 3395 862 (+207,=291,-364) 40.9 %
fire-8242022 3384 862 (+195,=290,-377) 39.4 %
nemorino-6.00 3374 862 (+156,=344,-362) 38.1 %
igel-3.1.0 3334 862 (+122,=323,-417) 32.9 %
ethereal-12.75 3331 862 (+158,=244,-460) 32.5 %
clover-3.1 3296 862 (+147,=194,-521) 28.3 %
minic-3.24 3290 862 (+106,=264,-492) 27.6 %
xiphos-0.6 3266 862 (+124,=184,-554) 25.1 %
tucano-10.00 3266 862 (+99,=234,-529) 25.1 %
marvin-6.0.0 3233 862 (+107,=160,-595) 21.7 %

Games Completed = 16384 of 16384 (Avg game length = 12.627 sec)

Settings = Gauntlet/32MB/1000ms+100ms/M 500cp for 6 moves, D 120 moves/EPD:book.epd(31526)

tools used:

instructions to create an efficiently-updatable neural network (nnue) for any engine:

monte-carlo search mode:

alt tag

fire-9 has undergone months of meticulous analysis and refactoring using many of the most modern C++ tools available today, including Clang, ReSharper C++, and Visual Studio Code Analysis, ensuring the production of extremely fast highly optimized and stable executables.

available Windows binaries

  • x64 bmi2 = fast pgo binary (for modern 64-bit systems w/ BMI2 instruction set) if you own a Intel Haswell or newer cpu, this compile should be faster.

  • x64 avx2 = fast pgo binary (for modern 64-bit systems w/ AVX2 instruction set) if you own a modern AMD cpu, this compile should be the fastest.

  • x64 popc = fast pgo binary (for older 64-bit systems w/ SSE41 & POPCNT instruction sets)

  • windows : fire-9_x64_x64_bmi2.exe, fire-9_x64_avx2.exe, fire-9_x64_popc.exe

run 'bench' at command line to determine which binary runs best/fastest on your system. for greater accuracy, run it twice and calculate the average of both results.

please see http://chesslogik.wix.com/fire for more info

compile it yourself

  • windows (visual studio) use included project files: Fire.vcxproj or Fire.sln
  • minGW run one of the included shell scripts: make_bmi2.sh, make_avx2.sh, make_popc.sh, or make_all.sh
  • ubuntu type 'make profile-build ARCH=x86-64-bmi2', 'make profile-build ARCH=x86-64-avx2', etc.

uci options

  • Hash size of the hash table. default is 64 MB.
  • Threads number of processor threads to use. default is 1, max = 128.
  • MultiPV number of pv's/principal variations (lines of play) to be output. default is 1.
  • Contempt higher contempt resists draws.
  • MoveOverhead Adjust this to compensate for network and GUI latency. This is useful to avoid losses on time.
  • MinimumTime Absolute minimum time (in ms) to spend on a single move. Also useful to avoid losses on time.
  • Ponder also think during opponent's time. default is false.
  • UCI_Chess960 play chess960 (often called FRC or Fischer Random Chess). default is false.
  • Clear Hash clear the hash table. delete allocated memory and re-initialize.
  • SyzygyProbeDepth engine begins probing at specified depth. increasing this option makes the engine probe less.
  • EngineMode choose NNUE (default), or random.
  • MCTS enable Monte Carlo Tree Search w/UCT (Upper Confidence Bounds Applied to Trees)
  • SyzygyProbeLimit number of pieces that have to be on the board in the endgame before the table-bases are probed.
  • Syzygy50MoveRule set to false, tablebase positions that are drawn by the 50-move rule will count as a win or loss.
  • SyzygyPath path to the syzygy tablebase files.

alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag

acknowledgements

many of the ideas & techiques incorporated into Fire are documented in detail here

and some have been adapted from the super strong open-source chess engine

and others

the endgame table bases are implemented using code adapted from Ronald de Man's

The NNUE implementation utilizes a modified version of Daniel Shawul's/Cfish excellent nnue probe code:

the MCTS implementation is derived from Stephane Nicolet's work

if you are interested in learning about my particular ultra-fast testing methodology, I've explained it in some detail here: http://www.chessdom.com/fire-the-chess-engine-releases-a-new-version/

license

Fire is distributed under the GNU General Public License. Please read LICENSE for more information.

please see http://chesslogik.wix.com/fire for more info

Does Fire-NN play like Stockfish?

No. Here are the results of Don Daily's SIM program (default values) today to measure Fire 8.NN move selection vs the last 4 versions of Stockfish:

alt tag

As you can see Stockfish 14.1 and Stockfish 15 make the same moves ~64% of the time (see row 4, column 5)

Fire 8.NN has an excellent score of ~43.34 % (see row 1), making different moves than SF almost 60% of the time.

The Sim tool can be downloaded here: https://komodochess.com/downloads.htm

If you're interested in similarity testing results, see also: https://github.com/FireFather/sim03

best regards-

[email protected]

fire's People

Contributors

firefather 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.