Skip to content
Andreas Matthies edited this page Jan 1, 2024 · 26 revisions

How to build RubiChess on a fresh install of Ubuntu 20.04 Desktop:

sudo apt install git make g++ clang lld llvm
git clone https://github.com/Matthies/RubiChess.git
cd RubiChess/src
make profile-build COMP=clang

Testing different architectures with Intels SDE

Run a build in SDE to test compatibility.

sde.exe <SDE-CPUtype> -- RubiChess_<Build>.exe
Build           SDE-CPUType   CPU Flags                                     CPUID
x86-64             -p4p       sse2                                          Genuine Intel(R) CPU 3.40GHz  Family: 15  Model: 6
x86-64-ssse3       -mrm       sse2 ssse3                                    6300  @ 1.86GHz  Family: 6  Model: 15
x86-64-modern      -nhm       sse2 ssse3 popcnt                             E5520  @ 2.27GHz  Family: 6  Model: 26
x86-64-bmi2        -hsw       sse2 ssse3 popcnt lzcnt bmi1 avx2 bmi2        i5-4670T CPU @ 2.30GHz  Family: 6  Model: 60
x86-64-avx512      -icx       sse2 ssse3 popcnt lzcnt bmi1 avx2 bmi2 avx512 Family: 6  Model: 106

Nodes test (Rubi Master 20220525 + gonodes branch)

4 threads from start position

Hash 32
Score of 100k vs 1m: 0 - 42 - 8  [0.080] 50
White Wins   :     24 (48.0 %)
Black Wins   :     18 (36.0 %)
Draws        :      8 (16.0 %)

Hash 64
Score of 1m vs 10m: 0 - 28 - 22  [0.220] 50
White Wins   :     17 (34.0 %)
Black Wins   :     11 (22.0 %)
Draws        :     22 (44.0 %)

Hash 128
Score of 5m vs 50m: 0 - 19 - 31  [0.310] 50
White Wins   :     15 (30.0 %)
Black Wins   :      4 ( 8.0 %)
Draws        :     31 (62.0 %)

Hash 256
Score of 10m vs 100m: 0 - 14 - 36  [0.360] 50
White Wins   :     13 (26.0 %)
Black Wins   :      1 ( 2.0 %)
Draws        :     36 (72.0 %)

Mating benchmarks using matetrack https://github.com/vondele/matetrack with 1000000 nodes

python3 ./matecheck.py --stockfish ./RubiChess --nodes 1000000

Master (20220624):
Total fens:    6566
Found mates:   1570
Best mates:    1045

Master (20220626):
Total fens:    6566
Found mates:   1629
Best mates:    1099

Master (20220902):
Total fens:    6566
Found mates:   1718
Best mates:    1134

Master (20221003):
Total fens:    6566
Found mates:   1690
Best mates:    1144

Master (20221008):
Total fens:    6566
Found mates:   1769
Best mates:    1195

Master (20221120):
Total fens:    6566
Found mates:   1736
Best mates:    1186

Master (20230123):
Total fens:    6566
Found mates:   1765
Best mates:    1222

Master (20230316):
Total fens:    6566
Found mates:   1633
Best mates:    1131

Master (20230410):
Total fens:    6566
Found mates:   1422
Best mates:    869

Master (20230623):
Total fens:    6566
Found mates:   1470
Best mates:    890

Progress

openings file=UHO_XXL_+0.80_+1.09.pgn
option.Threads=1
option.Hash=64
tc=60.0+0.6
Score of RubiChess-20230316_x86-64-avx2 vs RubiChess-20221120_x86-64-avx2: 545 - 405 - 1050  [0.535] 2000
Elo difference: 24.4 +/- 10.5, LOS: 100.0 %, DrawRatio: 52.5 %

Benchmarks on Raspis

All tests done with the noneon branch commit e5385afeb62feadb8968d21a90f2f7275370d264

  1. Raspi 1B+ running Debian 12 64bit: Linux raspi5 6.1.0-rpi7-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux
========================================================================================
RubiChess 20240101 32Bit (Build commit e5385a GCC 10)
UCI compatible chess engine by Andreas Matthies
----------------------------------------------------------------------------------------
System: ArmV6 or older platform not supporting any SIMD
CPU-Features of system: 
CPU-Features of binary: 
========================================================================================
Overall:                     0/  0 =  0.0%                   1134.783203 sec.    5298503 nodes       4669 nps
Overall:                     0/  0 =  0.0%                    302.982208 sec.    6899078 nodes      22770 nps
========================================================================================
profile build doesn't compile for both compilers.

2a. Raspi 3B running Debian 12 64bit: Linux raspi3 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux

========================================================================================
RubiChess 20240101 NN-c257b (arm64) 64Bit (Build commit e5385a GCC 12)
UCI compatible chess engine by Andreas Matthies
----------------------------------------------------------------------------------------
System: ArmV8 (AArch64) platform supporting NEON
CPU-Features of system: neon arm64
CPU-Features of binary: neon arm64
========================================================================================
Overall:                     0/  0 =  0.0%                     67.239281 sec.    5298503 nodes      78800 nps
Overall:                     0/  0 =  0.0%                     27.064074 sec.    6899078 nodes     254916 nps
========================================================================================
Clang profile build doesn't compile.

2b. Raspi 3B running Debian 11 32bit: ...

  1. Raspi 5 running Debian 12 64bit: Linux raspi5 6.1.0-rpi7-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux
========================================================================================
RubiChess 20240101 NN-c257b (dotprod) 64Bit (Build commit e5385a GCC 12)
UCI compatible chess engine by Andreas Matthies
----------------------------------------------------------------------------------------
System: ArmV8.2+DotProd (AArch64) platform supporting NEON
CPU-Features of system: neon arm64 dotprod
CPU-Features of binary: neon arm64 dotprod
========================================================================================
Overall:                     0/  0 =  0.0%                      9.040769 sec.    5298503 nodes     586067 nps
Overall:                     0/  0 =  0.0%                      5.069013 sec.    6899078 nodes    1361029 nps
========================================================================================
RubiChess 20240101 (dotprod) 64Bit (Build commit e5385a Clang 14)
========================================================================================
Overall:                     0/  0 =  0.0%                      9.187727 sec.    5298503 nodes     576693 nps
Overall:                     0/  0 =  0.0%                      4.991254 sec.    6899078 nodes    1382233 nps