Skip to content

a very strong, state-of-the-art, highly optimized, open-source freeware UCI chess engine... designed and programmed for modern 64-bit windows and linux systems

License

Notifications You must be signed in to change notification settings

gekkehenker/fire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fire

alt tag

a very strong, state-of-the-art, highly optimized, open-source freeware UCI chess engine... designed and programmed for modern 64-bit windows and linux systems by Norman Schmidt

features

  • c++17
  • 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)
  • integrated tuner (if compiled with #define TUNER)
  • timestamped bench, perft/divide, and tuner logs
  • asychronous cout (acout) class using std::unique_lockstd::mutex

Fire 8 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.

strength

Fire 8 has been thoroughly tested by the CCRL testing group:

Fire appears to be superior to Ethereal and Houdini at fast time controls (like 40/4), but really shines at ultra-fast TCs like 1000ms + 100 ms (avg. game 14 secs)

engine games win loss draw timeouts win% elo los
Fire 8.1 5697 +2334 -1221 =2142 0 59.8% +70 elo 100%
Ethereal 2.75 5697 +1221 -2334 =2142 0 40.2% -70 elo 0%

available binaries

  • x64 popc = fast pgo binary (for modern 64-bit systems w/ popcnt instruction set)

  • x64 pext = 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.

  • windows : Fire_8_x64_popc.exe or Fire_8_x64_pext.exe

  • linux : Fire_8_x64_popc or Fire_8_x64_pext

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 included bash scripts makefire_pext.sh or makefire_popc.sh
  • ubuntu type 'make profile-build ARCH=x86-64-pext' or 'make profile-build ARCH=x86-64-popc'

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

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

If you are interested in learning about my particular 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.

best regards-

Norm

[email protected]

About

a very strong, state-of-the-art, highly optimized, open-source freeware UCI chess engine... designed and programmed for modern 64-bit windows and linux systems

Resources

License

Stars

Watchers

Forks

Packages

No packages published