Halogen is a powerful, world-class program capable of analysing and playing chess. It has a peak rating of 16th on the international Computer Chess Rating List, and is the #1 strongest chess engine in Oceania.
The latest version of Halogen can always be downloaded from the releases page
Halogen is not a stand alone application and should be used with any popular chess GUI that supports the UCI protocol. Arena chess is a popular choice.
To build Halogen yourself, use the included Makefile in the src directory. The Makefile provides several build targets and configuration options.
For a basic optimized build with PGO (Profile-Guided Optimization):
cd src
makeThis will build Halogen-pgo in the bin directory using your native CPU architecture.
make pgo(default) - PGO-optimized build for maximum performancemake release- Standard optimized release build with LTOmake debug- Debug build with symbols and no optimizationmake sanitize-address- Build with AddressSanitizer for memory debuggingmake sanitize-undefined- Build with UndefinedBehaviorSanitizermake sanitize-thread- Build with ThreadSanitizer for race condition detectionmake tune- Build for parameter tuningmake tournament- Tournament mode build with NUMA support
You can specify the target CPU architecture using the ARCH parameter:
make ARCH=<architecture> <target>Supported architectures:
native(default) - Auto-detect and optimize for your CPUlegacy- Basic build without SIMD instructionssse4- For Intel Nehalem (2008) and neweravx- For Intel Sandy Bridge (2011) and neweravx2- For Intel Haswell (2013) and neweravx2-pext- Haswell with BMI2 instructionsavx512- For Intel Skylake-X (2017) and neweravx512vnni- For Intel Cascade Lake (2019) and newerneon- For ARM v8.0+ processorsneon-dotprod- For ARM v8.2+ with dot product support
Example:
make ARCH=avx2 releaseHalogen uses a neural network for evaluation. The Makefile will automatically download the default network if needed. You can also specify a custom network file:
make EVALFILE=/path/to/network.nn releaseHalogen is officially supported on Windows, Ubuntu, and MacOS for both x86-64 and ARM64 platforms, when using compilers gcc-11 and clang-16 or newer.
| Platform | Build |
|---|---|
| Ubuntu x86-64 | |
| Ubuntu ARM64 | |
| Windows x86-64 | |
| Windows ARM64 | Coming soon |
| MacOS x86-64 | |
| MacOS ARM64 (M1) |
| Version | CCRL 40/15 | CCRL Blitz | CCRL 40/2 FRC | CEGT 40/20 | CEGT 40/4 | MCERL |
|---|---|---|---|---|---|---|
| 15 | 3575 | 3695 | 3843 | 3552 | - | - |
| 14 | 3553 | 3686 | 3838 | 3531 | - | - |
| 13 | 3515 | 3632 | - | 3471 | - | - |
| 12 | 3454 | 3534 | 3643 | 3376 | 3409 | 3438 |
| 11 | 3377 | 3434 | - | 3282 | - | 3422 |
Written in C++, Halogen implements Null-move pruning, Late move reductions, Quiessence search and a Transposition table that uses Zobrist Hashing. The search routine is multithreaded using the SMP parallelisation technique.
Halogen development is currently supported on the Openbench framework. OpenBench (created by Andrew Grant) is an open-source Sequential Probability Ratio Testing (SPRT) framework designed for self-play testing of engines. OpenBench makes use of distributed computing, allowing anyone to contribute CPU time to further the development of some of the world's most powerful engines.
Since 2020, Halogen has used a neural network for its evaluation function. Halogen makes use of an incrementally updated architecture, inspired by the new NNUE networks in Stockfish. The neural networks were trained using a novel application of Temporaral Difference learning1, and then fine tuned using supervised learning on data generated through self-play games using the Bullet trainer2.
