syzygy1 / cfish Goto Github PK
View Code? Open in Web Editor NEWC port of Stockfish
License: GNU General Public License v3.0
C port of Stockfish
License: GNU General Public License v3.0
20 threads, 32 GB hash, 6-man tables:
info depth 66 seldepth 94 multipv 1 score cp -836 nodes 4603616284472 nps 53102871 hashfull 999 tbhits 31002107665 time 86692417 pv a7a8 a3a2 a8a5 e6e7 a5a8 e7d6 g2f3 g6g5 f3e2 d6e6 a8e8 e6d7 e8a8 g5h4 g3h4 f6f5 e2f3 d7c6 a8c8 c6b6 c8b8 b6c7 b8a8 c7b7 a8a3 b7c6 d2c4 c5d3 c4e3 d3c1 a3a8 a1b1 e3c2 b1b2 c2e3 b2b8 a8a5 b8b1 e3c2 b1b2 c2a1 c6b6 a5a8 b2b1 a1c2 b6c5 a8c8 c5d5 c8a8 b1b2 c2e3 d5c6 a8a3 c6c5 a3a5 b2b5 a5a8 b5b1 e3c2 b1b2 c2e1 c5c4 f3f4 b2b1 a8c8 c4b3 c8b8 b3c3 b8c8 c3b2 c8c2 b2b3 c2a2 c1a2 e1f3 b3b4 f4f5 b1d1 f5f4 b4c5 f4e3 a2b4 e3e2 d1b1 f3g5 b1b2 e2e1 b4d3 e1d1 d3f2 d1e1
info depth 67 currmove a7a8 currmovenumber 1
stop
info depth 67 seldepth 94 multipv 1 score cp -836 nodes 4939319895868 nps 53190320 hashfull 999 tbhits 33894567834 time 92861255 pv a7a8 a3a2 a8a5 e6e7 a5a8 e7d6 g2f3 g6g5 f3e2 d6e6 a8e8 e6d7 e8a8 g5h4 g3h4 f6f5 e2f3 d7c6 a8c8 c6b6 c8b8 b6c7 b8a8 c7b7 a8a3 b7c6 d2c4 c5d3 c4e3 d3c1 a3a8 a1b1 e3c2 b1b2 c2e3 b2b8 a8a5 b8b1 e3c2 b1b2 c2a1 c6b6 a5a8 b2b1 a1c2 b6c5 a8c8 c5d5 c8a8 b1b2 c2e3 d5c6 a8a3 c6c5 a3a5 b2b5 a5a8 b5b1 e3c2 b1b2 c2e1 c5c4 f3f4 b2b1 a8c8 c4b3 c8b8 b3c3 b8c8 c3b2 c8c2 b2b3 c2a2 c1a2 e1f3 b3b4 f4f5 b1d1 f5f4 b4c5 f4e3 a2b4 e3e2 d1b1 f3g5 b1b2 e2e1 b4d3 e1d1 d3f2 d1e1
info depth 69 seldepth 129 multipv 1 score cp -265 nodes 4939319895868 nps 53190319 hashfull 999 tbhits 33894567834 time 92861256 pv d2c4 a3a2 c4e3 c5d3 a7a6 e6d7 e3d5 d3e1 g2f1 f6f5 f1e2 e1d3 e2d3 a1d1 d3e3 a2a1q a6a1 d1a1 d5f4 a1a6 e3d2 d7e7 d2e2 a6a2 e2f3 a2a3 f3g2 a3a6 f4d5 e7f8 g2f3 a6a5 d5f4 a5a3 f3e2 f8f7 f4h3 f7f6 e2f1 a3a4 f1e2 a4e4 e2f3 e4b4 f3g2 f6e5 g2f3 b4c4 h3f4 c4c3 f3g2 c3c6 g2f3 c6d6 f3e3 d6b6 e3f3 b6a6 f3g2 e5e4 f4e2 a6f6 e2c3 e4d3 c3d5 f6d6 d5f4 d3e4 f4e2 d6a6 e2f4 a6b6 f4e2 b6d6 e2f4 d6f6 f4e2 e4e5 e2f4 f6d6 g2f3 d6c6 f3g2 e5d4
bestmove d2c4 ponder a3a2
If you type "bench 16 2 13" Cfish will stuck at position 40, though with 1 thread everything OK.
Is the NUMA=all option supposed to work the same as asmFish's NodeAffinity=all option?
If so, what about the other options for specifying different numa nodes like in asmFish? Will NUMA=1 force cFish to use only NUMA node 1? If so then it's not working.
With asmFish I can set NodeAffinity=1 and it'll only use NUMA node 1 and the cores on NUMA node 1. This works because if I set an engine tournament like asmFish vs H5 and I have 2 cpu's and 36 cores then I can tell asmFish to use only NUMA node 1 and only 18 of its cores while cFish will use the other 18 cores on NUMA node 0. Both engines run at 50% cpu utilization which means my system is running at 100% cpu and all 36 cores and this would be correct.
If I try to set up the same tournament with H5 vs cFish and I set cFish's NUMA option to NUMA=1 then it still uses NUMA 0 and so does H5 and cpu utilization for each engine is then only 25% which is incorrect. Another words, the tournament would be unfair to one of the engines since both are fighting for the same resources...unfair or at least run inefficiently.
I assume the NUMA option in cFish doesn't have the same features as NodeAffinity in asmFish correct? Too bad.
Thank you very much that you continued to work on the engine!
I have no doubt that the "С" port of Stockfish must exist!
With respect to you and your work, Andrey.
Hi Ronald,
I'm using CFish with Arena and made a deep Analysis of one of the Google-Stockfish games. You may know that Arena "writes" a new line every ply. After 33 minutes I got depth 56, ~33 Billion nodes, 600+ Million TB hits....the next line was 1h11m, depth 57, ~ 128 Billion nodes and 1 TB hit. So I guess there was an error reporting more than 1 Billion TB hits....and I don't know if it is CFish or Arena that has this "bug". Can you check if your Cfish is able to report > 1 Billion TB hits correctly?
Saugi
PS: Any release date for (at least) 5-men DTM files?
Hello,
This is not an "issue", only information, you can immediately close it after reading.
I compared with date of today 2016-Oct-10 Stockfish-Master, PedantFish, Asmfish and CFish.
Machine: 4way Opteron 6386SE. OS: Windows 2012 R2 Server.
Fish and Stockfish compiled with GCC6.2 under mingw64.
3 runs of "bench 1024 64 24", then averaged. before benchmarks were started for AsmFish/PedantFish, LargePages were turned on with the UCI-command.
Result:
Hi! After update CFish to "Prevent Stockfish from exiting if DTZ table is not present" bench is (a little) different (compared to Stockfish): 5417523 instead of 5417521
I just compile CFish with MAGIC_BLACK and on my machine (Phenom II x6) it's slightly faster than MAGIC_PLAIN. https://postimg.org/image/yr7ymwjg5/
1 core, 0.25 sec/move:
Score of CFish_x64_120817_popcnt_710gcc vs CFish_x64_120817_Black_magic_popcnt_710gcc: 35 - 48 - 153 [0.472]
ELO difference: -19.16 +/- 26.27
236 of 2000 games finished.
Of course, there are only 236 games...
Hello! It is not an issue.
I think I can speak on behalf of all the fans of Cfish: could you add support for the Cerebellum book as in Brainfish or ASMfish? I think all Cfish users would like this.
Hello!
On a Windows machines with hyper-threading enabled, Cfish is playing bad in 1-core testing with concurrency more than number of real cores.
Test on server with 2 CPU (total 12 cores/24 threads):
Games Completed = 17530 of 100000 (Avg game length = 30.432 sec)
Settings = RR/32MB/Book/10000ms+100ms/M 1000cp for 12 moves, D 120 moves/PGN:C:\Users\Burcontovk\Desktop\Lbbooks\Mybookbullet.pgn(299)
Time = 35861 sec elapsed, 168710 sec remaining
1. CFish_x64_281217_NUMA_popcnt_720mingw 8135.0/17530 2375-3635-11520
(L: m=755 t=34 i=0 a=2846) (D: r=8358 i=1593 f=405 s=94 a=1070) (tpm=235.4 d=18.00 nps=1117936)
2. stockfish_281217_x64_popcnt 9395.0/17530 3635-2375-11520
(L: m=457 t=0 i=0 a=1918) (D: r=8358 i=1593 f=405 s=94 a=1070) (tpm=232.2 d=18.64 nps=1209669)
Concurrency 15 or more.
PGN with games: http://www75.zippyshare.com/v/LEYXO33P/file.html
Test on i7 6700HQ (4 cores/8 threads):
i7 6700HQ Quad @ 3.5 | OS: Win10x64-16GB | Gui CuteChess 1.0.0
TopGM_2move.pgn| Hash=16MB | HT~On | Ponder=No | TB=No
Cores=1 | Concurrency 7 | Elo Ordo 1.26 | Time: 10"+.1" (64")
PLAYER : RATING ERROR PLAYED (%) W D L D(%) CFS(%)
1 CFish_x64_281217_NUMA_popcnt_720mingw : 3200 4 2200 50.0 325 1552 323 70.5 53
2 stockfish_281217_x64_popcnt : 3200 4 2200 50.0 323 1552 325 70.5 ---
Test on my AMD FX-8150 (8cores/8 threads):
Win 10, Cutechess 0.9.4, TC: 10+0.1, hash 16 MB, 1 core, concurrency 7
Score of CFish_x64_281217_NUMA_popcnt_720mingw vs stockfish_281217_x64_popcnt:
1883 - 1292 - 6825 [0.530]
ELO difference: 20.56 +/- 3.82
10000 of 10000 games finished.
Both engines have same bench
With nvme drives like 960 pro and 900p optane being orders of magnitude faster than previous SSDs, and even 64/128GB of ram to cache most of the 6 pieces not being that expensive I would like the option to test strength of doing TB proving in qsearch since I think now it could give a strength gain when it couldn't before, and see how much NPS slowdown different storage mediums have.
I imagine the last time this was tested was at best with SATA3 SSD? Thanks!
Hello!
Looks like you forgot to add
line 1500: - if ( (Limits.use_time_management() && elapsed > Time.maximum())
line 1500: + if ( (Limits.use_time_management() && elapsed > Time.maximum() - 10)"
from search.cpp
Or it's not needed?
hi ronald, the latest issue about TM is for 60 in x only? or for all time contols?
Dual 10-core Linux system with 64 GB RAM. There is a 35-second delay between the messages about binding threads and the info depth 1 message. The length of the delay increases with the size of the hash table, so I assume the delay is related to hash initialization.
I don't recall this happening in the past. Is this an artifact of the switch to arbitrary hash sizes? I note a similar (but smaller) delay with Stockfish 9 as well.
Thanks for offering Cfish!
Cfish 090218 64 POPCNT NUMA by Syzygy based on Stockfish
info string NUMA enabled.
setoption name Threads value 20
setoption name Hash value 32768
go infinite
info string Binding thread 0 to node 0.
info string Binding thread 1 to node 0.
info string Binding thread 2 to node 0.
info string Binding thread 3 to node 0.
info string Binding thread 4 to node 0.
info string Binding thread 5 to node 0.
info string Binding thread 6 to node 0.
info string Binding thread 7 to node 0.
info string Binding thread 8 to node 0.
info string Binding thread 9 to node 0.
info string Binding thread 10 to node 1.
info string Binding thread 11 to node 1.
info string Binding thread 12 to node 1.
info string Binding thread 13 to node 1.
info string Binding thread 14 to node 1.
info string Binding thread 15 to node 1.
info string Binding thread 16 to node 1.
info string Binding thread 17 to node 1.
info string Binding thread 18 to node 1.
info string Binding thread 19 to node 1.
**About 35 seconds pass between the above message and the one below.**
info depth 1 seldepth 1 multipv 1 score cp 102 nodes 1192 nps 397333 tbhits 0 time 3 pv e2e4
info depth 2 seldepth 2 multipv 1 score cp 38 nodes 4544 nps 1136000 tbhits 0 time 4 pv d2d4 d7d5
Hello. There was a problem. I compile
Cfish on android and until November all
versions worked fine. But since
cfish-031117 appeared bug. It shows up
when the engine exits the book and
does its own move. For example, in the
following example, cfish makes a black
move 9. ..d5 ?? , spends on it only 2
ms. 1. e4 d6 2. d4 g6 3. Nf3 Bg7 4.
Nc3 Nf6 5. h3 c6 6. a4 Qa5 7. Bd2
Nbd7 8. Bc4 OO 9. Qe2 {[15] 0.66 1.4s
796.9knps Qe2 Qd8} 9 .. . d5 ?? {[1]
0.05 2ms !! 81.0knps ..d5} 10. Nxd5
{[15] 2.39 1.8s 795.0knps Nxd5 Qd8}
10 ... Qd8 {[17] -2.47 2.1s 866.5knps
..Qd8 Nf4} This bug appears only when
you exit the book and (for example, 2m
Obviously you can't apply all of them since the program is slightly different. But for [0,5] patches like Oct 25 (today's) Endgame malus for having a king in a pawnless flank, this would almost certainly help Cfish too, and if those patches aren't kept up with Cfish will be passed by, even staying faster. It would help us to know for analysis which version of SF would be most comparable, and if it gets too far back we can try some analysis with both, and if eventually you stop updating, we will all know where it was left if anyone else wants to pick back up or compare.
ASMFish does something like this by putting a date in, although I haven't read that it means he has put in all patches by that date, I think it is at least close.
Hi!
I noticed that comparing speed of Cfish & Stockfish via "bench' command in Windows command promt shows only 4-5% speedup of Cfish, but in Build Tester and GUI (like Aquarium or Fritz) it shows about 10-15%. I compared your cfish_9_x64_modern_windows and official SF's popcnt versions.
I think numa is broken. I should be getting double the speed (kN/s). It's only half now. It's likely because I noticed that Task Manager is reporting the engine's cpu usage as only 50% instead of 100%. If I disable HT it then runs 100%. The same thing happens when I use the latest SF dev which I think it's because it's not numa aware.
Works fine in asmFish (100% cpu and speed is doubled).
Using dual e5-2696v3 (36 cores) with HT on (72 cores).
Cfish 404b260 bench
This is what I (Intel i7 4790K, Windows 10 Pro 64 bit) got
Base = No LP
Test = Large Pages
Results for 20 tests for each version:
Base Test Diff
Mean 2833006 2826956 6050
StDev 20152 23290 33079
p-value: 0.427
speedup: -0.002
Hello!
You forgot something:
official-stockfish/Stockfish@d9cac9a#diff-e88e03386a215910d76a232ae9603922L803
"-" // Endgame with opposite-colored bishops and no other pieces (ignoring pawns)
" -" // is almost a draw, in case of KBP vs KB, it is even more a draw.
"+ " // Endgame with opposite-colored bishops and no other pieces is almost a draw
if ( pos.non_pawn_material(WHITE) == BishopValueMg
&& pos.non_pawn_material(BLACK) == BishopValueMg)
"-" sf = more_than_one(pos.pieces(PAWN)) ? 31 : 9;
"+" sf = 31;
Sorry for posting here :)
Is there a way to pre-set the Syzygy options during compilation ?
Like path, probe depth and probe limit ?
Thanks...
CFish works much better than asmfish on my 8 node machine, I hope you find the time to keep updating CFish.
I can not build base x64 exe:
bitboard.c: In function 'bitboards_init':
bitboard.c:175:29: warning: implicit declaration of function 'popcount16'; did you mean 'popcount'? [-Wimplicit-function-declaration]
PopCnt16[i] = (uint8_t) popcount16(i);
^~~~~~~~~~
popcount
=========================
Config:
debug: 'no'
optimize: 'yes'
arch: 'x86_64'
bits: '64'
prefetch: 'yes'
popcnt: 'no'
sse: 'yes'
pext: 'no'
Flags:
CC: gcc
CFLAGS: -Wall -std=c11 -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA
LDFLAGS: -lm
Testing config sanity. If this fails, try 'make help' ...
Step 1/4. Building instrumented executable ...
make ARCH=x86-64 COMP=mingw gcc-profile-make
make[1]: Entering directory /g/MinGW/CFish/Test_22/Cfish-master_x64_test/Cfish-master/src' make ARCH=x86-64 COMP=mingw \ EXTRACFLAGS='-fprofile-generate' \ EXTRALDFLAGS='-lgcov' \ all make[2]: Entering directory
/g/MinGW/CFish/Test_22/Cfish-master_x64_test/Cfish-master/src'
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o benchmark.o benchmark.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o bitbase.o bitbase.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o bitboard.o bitboard.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o endgame.o endgame.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o evaluate.o evaluate.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o main.o main.c
bitboard.c: In function 'bitboards_init':
bitboard.c:175:29: warning: implicit declaration of function 'popcount16'; did you mean 'popcount'? [-Wimplicit-function-declaration]
PopCnt16[i] = (uint8_t) popcount16(i);
^~~~~~~~~~
popcount
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o material.o material.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o misc.o misc.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o movegen.o movegen.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o movepick.o movepick.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o pawns.o pawns.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o position.o position.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o psqt.o psqt.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o search.o search.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o tbprobe.o tbprobe.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o thread.o thread.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o timeman.o timeman.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o tt.o tt.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o uci.o uci.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o ucioption.o ucioption.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o numa.o numa.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o settings.o settings.c
gcc -Wall -std=c11 -fprofile-generate -D__USE_MINGW_ANSI_STDIO=1 -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -march=native -DNUMA -c -o polybook.o polybook.c
gcc -o cfish benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o material.o misc.o movegen.o movepick.o pawns.o position.o psqt.o search.o tbprobe.o thread.o timeman.o tt.o uci.o ucioption.o numa.o settings.o polybook.o -lgcov -lm
bitboard.o:bitboard.c:(.text+0x2ca): undefined reference to popcount16' collect2.exe: error: ld returned 1 exit status make[2]: *** [cfish] Error 1 make[2]: Leaving directory
/g/MinGW/CFish/Test_22/Cfish-master_x64_test/Cfish-master/src'
make[1]: *** [gcc-profile-make] Error 2
make[1]: Leaving directory `/g/MinGW/CFish/Test_22/Cfish-master_x64_test/Cfish-master/src'
make: *** [profile-build] Error 2
strip: 'CFish.exe': No such file
Cfish : Src of 2018/02/15
Total time (ms) : 4365
Nodes searched : 5006365
Nodes/second : 1 146 933
Stockfish 9
Total time (ms) : 2445
Nodes searched : 5006365
Nodes/second : 2 047 593
Hello. When will Cfish be updated?
Thanks.
Hello, Mr. De Man.I do cfish compilations on Android and have to write code all the time.
You could add the following changes to the following file misc.h and misc.c:
misc.h
#define IO_UNLOCK pthread_mutex_unlock(&io_mutex)
#else
extern HANDLE io_mutex;
#define IO_LOCK WaitForSingleObject(io_mutex, INFINITE)
#define IO_UNLOCK ReleaseMutex(io_mutex)
int large_pages_supported(void);
extern size_t large_page_minimum;
#endif
#if defined __WIN32__||defined __ANDROID__
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
#endif
misc.c
#if defined __WIN32__||defined __ANDROID__
ssize_t getline(char **lineptr, size_t *n, FILE *stream)
{
if (*n == 0)
*lineptr = malloc(*n = 100);
Also in the bitbase file.c
when compiling the engine on Android using the compiler 4.9 + there is the following error: conflicting types with variable [index] .I fixed it this way [_index] (added an underscore).
There, this variable is used seven times.
Can this be fixed?
Thanks.
Sometimes I'm getting the following warning from cutechess-cli
What could it be?
It happens with both make build and make profile-build. If I use the "make build x86-64" command, supposedly it should disable popcnt, but it doesn't. Likewise if I use "make profile build x86-64-bmi2", it should enable pext, but it still doesn't. I have to manually set those flags in the makefile to make it work. I'm using the latest MinGW GCC 7.3.0 posix seh on Windows 10.
EDIT: I just realized that I need to append ARCH before the arch selection to make it work. Sorry for the false alarm. You can close this issue.
I get a lot of warnings for various files...all same message:
benchmark.c:209:21: warning: ISO C does not support the 'I' ms_printf length modifier [-Wformat=]
and
benchmark.c:223:19: warning: ISO C does not support the 'I64' ms_printf length modifier [-Wformat=]
If NUMA is not #define 'd, ucioption.c references but doesn't define on_numa(), causing a compilation error.
This is 2x8 system, I believe numa, so I don't know if that affects this? I had an error with GCC 4.8 missing a .h file which was GCCs fault, so I tried GCC 5.1 and got this error. I was able to compile fine on my windows box with 5.3 and 5.4, does it need a recent GCC just to compile?
gcc -Wall -std=c11 -fprofile-generate -pedantic -Wextra -Wshadow -m64 -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -DNUMA -c -o benchmark.o benchmark.c
In file included from benchmark.c:32:0:
tt.h:101:23: error: expected declaration specifiers or ‘...’ before numeric constant
#define CacheLineSize 64
^
tt.h:111:15: note: in expansion of macro ‘CacheLineSize’
static_assert(CacheLineSize % sizeof(Cluster) == 0, "Cluster size incorrect");
^
tt.h:111:53: error: expected declaration specifiers or ‘...’ before string constant
static_assert(CacheLineSize % sizeof(Cluster) == 0, "Cluster size incorrect");
^
make[2]: *** [benchmark.o] Error 1
Probing tablebases from ram drive make sense.
Is there any particular cons from probing tablebases from ram drives. E.g if analysing with 5-men gaviota/nalimov stored on RAM disk. Gaviota/nalimov does not get cached in RAM.
I am compiling on 64bit linux and had to set popcnt = no in the make file or the program would crash with an illegal instruction error. Please disable this by default, not all 64bit CPUs have popcnt.
First, thank you for your time and for keeping up Cfish, I find it very solid and very good performance so far it's my favorite engine outhere. I do compile it myself using MinGW with no issues.
I have seen other ports that have options for avx bm1 bmi2 avx2 and so on that you can set on file before compiling. Is there any chance of that here in Cfish, what files should I look into to edit and make this options available? Thanks for your time and work.
Hello! Can you please make button to disable the dynamic part of this?
The dynamic part has no good effect in analysis, IMO.
I tryied this:
if (option_value(OPT_CONTEMPT_DYNAMIC))
{
// Adjust contempt based on current situation
int ct = base_ct + ( bestValue > 500 ? 50
: bestValue < -500 ? -50
: bestValue / 10);
store_rlx(Contempt, pos_stm() == WHITE ? make_score(ct, ct / 2)
: -make_score(ct, ct / 2));
}
it works fine for me in analysis.
Hi,
This version stop to move after last book move
Best regards
Did you see https://developers.redhat.com/blog/2016/02/25/new-asm-flags-feature-for-x86-in-gcc-6/ ?
If I had known about this earlier, I might not have tried to write asmfish in asm. It really does work, and I have tried it myself for overflow https://github.com/tthsqe12/cas/blob/master/types.h#L182
Tested asmFish with LP and it's fine including numa. While cFish's numa seems to be working for me large pages are not. Using Win'2008 R2 Ent. with 64 GB ram, 2 x E5-2696v3.
I tested plain fixed-shift magics, MAGIC_BLACK still faster:
https://postimg.org/image/kyp070zmn/
But in match with 0.25 sec per move, 1 core, hash 16 mb - looks like MAGIC_PLAIN is a little stonger than MAGIC_BLACK:
Score of CFish_x64_120817_BM_modern_710gcc vs CFish_x64_130817_PM_710gcc: 53 - 67 - 217 [0.479]
ELO difference: -14.44 +/- 22.12
337 of 2000 games finished.
Both popcnt, comp=gcc, -flto
===
UPD
Score of CFish_x64_120817_BM_modern_710gcc vs CFish_x64_130817_PM_710gcc: 104 - 111 - 410 [0.494]
ELO difference: -3.89 +/- 15.96
625 of 2000 games finished.
====
UPD:
Score of CFish_x64_120817_BM_modern_710gcc vs CFish_x64_130817_PM_710gcc: 187 - 171 - 619 [0.508]
ELO difference: 5.69 +/- 13.17
977 of 2000 games finished.
position.c: In function 'print_pos':
position.c:128:31: warning: unknown conversion type character 'l' in format [-Wformat=]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^
position.c:128:10: warning: too many arguments for format [-Wformat-extra-args]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
position.c:128:31: warning: unknown conversion type character 'l' in format [-Wformat=]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^
position.c:128:10: warning: too many arguments for format [-Wformat-extra-args]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From October compilations of Cfish doesn't work on Windows ("Couldn't load engine"), what can be the reason? Thank you
Hello! After patch "Update TB probing code." CFish began to play worse.
Score of CFish_x64_150917_Make_ss_ply_720mingw vs CFish_x64_150917_V2_Update_TB_probing_code_720mingw: 161 - 115 - 454 [0.532]
Elo difference: 21.92 +/- 15.47
730 of 2000 games finished.
Do not pay attention to the date in the title - I just forgot to change it in the bat file...
I've been seeing these regularly with all the cFish updates I've tried so far, even before Numa. It compiles without error and doesn't seem to affect the engine's performance but perhaps it can lead to other problems? Tried several different versions of gcc. Compiling with MingW, and currently using gcc 6.2.0 on Win'2008 R2 Ent. and 2x E5-2696v3 . And as I mentioned before, LP doesn't work as well. I hope this helps.
.....
gcc -Wall -std=c11 -fprofile-generate -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -
msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -mbmi2 -DNUMA -c -o position.o po
sition.c
position.c: In function 'print_pos':
position.c:127:31: warning: unknown conversion type character 'l' in format [-Wf
ormat=]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^
position.c:127:10: warning: too many arguments for format [-Wformat-extra-args]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
position.c:127:31: warning: unknown conversion type character 'l' in format [-Wf
ormat=]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^
position.c:127:10: warning: too many arguments for format [-Wformat-extra-args]
printf("\nFen: %s\nKey: %16llX\nCheckers: ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -Wall -std=c11 -fprofile-generate -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -
msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -mbmi2 -DNUMA -c -o psqt.o psqt.c
gcc -Wall -std=c11 -fprofile-generate -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -
msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -mbmi2 -DNUMA -c -o search.o sear
ch.c
search.c: In function 'search_clear':
search.c:219:22: warning: format '%ld' expects argument of type 'long int', but
argument 2 has type 'long long unsigned int' [-Wformat=]
printf("sizeof = %ld\n", sizeof(*cmh_tables[0]));
^
search.c:219:22: warning: format '%ld' expects argument of type 'long int', but
argument 2 has type 'long long unsigned int' [-Wformat=]
gcc -Wall -std=c11 -fprofile-generate -Wextra -Wshadow -DNDEBUG -O3 -DIS_64BIT -
msse -msse3 -mpopcnt -DUSE_POPCNT -DUSE_PEXT -mbmi2 -DNUMA -c -o tbprobe.o tbp
robe.c
tbprobe.c: In function 'probe_wdl_table':
tbprobe.c:160:10: warning: array subscript is above array bounds [-Warray-bounds
]
p[i++] = pop_lsb(&bb) ^ mirror;
~^~~~~
tbprobe.c: In function 'TB_probe_dtz':
tbprobe.c:270:10: warning: array subscript is above array bounds [-Warray-bounds
]
p[i++] = pop_lsb(&bb) ^ mirror;
.....
In all fairness I also see some warnings when running a Stockfish Run test where it downloads and compiles a test run:
Running lmrk3b vs master:
.....
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -fprofile-generate -W
extra -Wshadow -DNDEBUG -O3 -DIS_64BIT -msse -msse3 -mpopcnt -DUSE_POPCNT -c -
o syzygy/tbprobe.o syzygy/tbprobe.cpp
syzygy/tbprobe.cpp: In function 'int probe_ab(Position&, int, int, int_)':
syzygy/tbprobe.cpp:205:14: warning: array subscript is above array bounds [-Warr
ay-bounds]
p[i++] = pop_lsb(&bb) ^ mirror;
~~~~~^
syzygy/tbprobe.cpp: In function 'int Tablebases::probe_dtz(Position&, int_)':
syzygy/tbprobe.cpp:315:14: warning: array subscript is above array bounds [-Warr
ay-bounds]
p[i++] = pop_lsb(&bb) ^ mirror;
~~~~~^
g++ -o stockfish benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o ma
terial.o misc.o movegen.o movepick.o pawns.o position.o psqt.o search.o thread.o
timeman.o tt.o uci.o ucioption.o syzygy/tbprobe.o -lgcov -static
.....
Hi!
Looks like "Analysis Contempt" & "UCI_Analysis" does not work.
1-st PV: options unchecked, 2-nd PV: options checked. Contempt 20.
3-rd PV: options unchecked, contempt = 0.
1-st
[+1.87] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b5 13.h7 Nxh7 14.Nxh7 Rd8 15.Ng5 a5 16.Ne4 Kc6 17.Rg5 b4 18.Rxa5 b3 19.Rc5 Kb6 20.Rc3(0:00:21) 38426kN
[+1.81] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7(0:00:21) 37192kN
[+2.00] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7(0:00:20) 36466kN
[+1.92] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7 18.Nxh7(0:00:19) 33587kN
[+2.00] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7 18.Nxh7 Rg8(0:00:18) 32960kN
[+2.07] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7 18.Nxh7 Rg8 19.Kf4(0:00:17) 30659kN
[+2.21] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7(0:00:16) 29680kN
[+1.92] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7(0:00:15) 27852kN
[+1.70] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7(0:00:15) 26380kN
[+1.55] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6(0:00:14) 25621kN
[+1.43] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6 Ka6(0:00:14) 25111kN
[+1.36] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6 Ka6 21.Rh4(0:00:13) 23822kN
[+1.43] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6 Ka6 21.Rh4 Kb6(0:00:10) 18246kN
[+1.60] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5(0:00:10) 17781kN
[+1.48] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5 Kc6(0:00:10) 17498kN
[+1.41] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5 Kc6 19.Rc3(0:00:09) 16964kN
[+1.48] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5 Kc6 19.Rc3 Kd7(0:00:07) 13675kN
[+1.61] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Nb5 9.Kg2 Nxd6 10.h5 Kc7 11.Nd4 Kb8 12.Ne6 Rc2 13.Kh3 Rc3 14.Kh4 Rh8(0:00:07) 12551kN
[+1.45] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Nb5 9.Kg2 Nxd6 10.h5 Kc7 11.Nd4 Kb8 12.Ne6 Rc2 13.Kh3 Rc3 14.Kh4 Rh8 15.h6(0:00:07) 11987kN
[+1.34] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Nb5 9.Kg2 Nxd6 10.h5 Kc7 11.Nd4 Kb8 12.Ne6 Rc2 13.Kh3 Rc3 14.Kh4 Rh8 15.h6 Rxa3(0:00:06) 11701kN
2-nd
[+1.87] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b5 13.h7 Nxh7 14.Nxh7 Rd8 15.Ng5 a5 16.Ne4 Kc6 17.Rg5 b4 18.Rxa5 b3 19.Rc5 Kb6 20.Rc3(0:00:21) 38426kN
[+1.81] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7(0:00:21) 37192kN
[+2.00] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7(0:00:20) 36466kN
[+1.92] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7 18.Nxh7(0:00:19) 33587kN
[+2.00] d=27 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7 18.Nxh7 Rg8(0:00:18) 32960kN
[+2.07] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Nf7 Re8 8.Ng5 Rd5 9.Rxd5 Nxd5 10.h5 Rf8 11.h6 Nf6 12.Kh2 b6 13.Kh3 a5 14.Kg3 Kxd6 15.h7 Ke7 16.Rg7 Ke8 17.Rb7 Nxh7 18.Nxh7 Rg8 19.Kf4(0:00:17) 30659kN
[+2.21] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7(0:00:16) 29680kN
[+1.92] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7(0:00:15) 27852kN
[+1.70] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7(0:00:15) 26380kN
[+1.55] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6(0:00:14) 25621kN
[+1.43] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6 Ka6(0:00:14) 25111kN
[+1.36] d=26 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6 Ka6 21.Rh4(0:00:13) 23822kN
[+1.43] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.Ne6 Re8 13.Rg7 Rd2 14.Kf3 Nb5 15.Nc7 Rh8 16.Nxb5 axb5 17.d7 Rd8 18.h5 R2xd7 19.Rxd7 Rxd7 20.h6 Ka6 21.Rh4 Kb6(0:00:10) 18246kN
[+1.60] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5(0:00:10) 17781kN
[+1.48] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5 Kc6(0:00:10) 17498kN
[+1.41] d=25 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5 Kc6 19.Rc3(0:00:09) 16964kN
[+1.48] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Kb6 9.Kg2 Rf8 10.Rb4 Ka7 11.Ng7 Rd5 12.h5 Rh8 13.h6 Nb5 14.Rh4 Nxd6 15.h7 a5 16.Rg3 Rd2 17.Kh3 Kb6 18.Rh5 Kc6 19.Rc3 Kd7(0:00:07) 13675kN
[+1.61] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Nb5 9.Kg2 Nxd6 10.h5 Kc7 11.Nd4 Kb8 12.Ne6 Rc2 13.Kh3 Rc3 14.Kh4 Rh8(0:00:07) 12551kN
[+1.45] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Nb5 9.Kg2 Nxd6 10.h5 Kc7 11.Nd4 Kb8 12.Ne6 Rc2 13.Kh3 Rc3 14.Kh4 Rh8 15.h6(0:00:06) 11987kN
[+1.34] d=24 1.Bxg6 fxg6 2.Rxg6 Ke8 3.Bd4 Rxc5 4.Re1 Bxd4 5.Rxe4 Kd7 6.Rxd4 Nc3 7.Rf4 Kc6 8.Nf5 Nb5 9.Kg2 Nxd6 10.h5 Kc7 11.Nd4 Kb8 12.Ne6 Rc2 13.Kh3 Rc3 14.Kh4 Rh8 15.h6 Rxa3(0:00:06) 11701kN
3-rd
[+1.36] d=27 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Nxd6 6.Rd2 Nf7 7.Rxd8 Nxd8 8.Kg2 Ne4 9.Rd1 Ne6 10.Rd7 Nxf6 11.Rxb7 Nc5 12.Rg7 Nfd7 13.Rxg5 Ne6 14.Rg3 Kf7 15.Nh6 Ke7 16.Re3 Kd6 17.Kf3 Nd4 18.Ke4(0:00:22) 39911kN
[+1.45] d=27 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Rd7 6.Kg1 Nxd6 7.Rxg5 Nce4 8.Rh5 Nf7 9.Rh4 Nxf6 10.Ne3 Kg7 11.Rhf4 Nh5 12.Nf5 Kg6 13.Rg4 Kh7 14.Rg2 Nh6 15.Rff2 Rd5 16.Ne7 Rd3(0:00:21) 36890kN
[+1.34] d=27 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Rd7 6.Kg1 Nxd6 7.Rxg5 Nce4 8.Rh5 Nf7 9.Rh4 Nxf6 10.Ne3 Kg7 11.Rhf4 Nh5 12.Nf5 Kg6 13.Rg4 Kh7 14.Rg2 Nh6 15.Rff2 Rd5 16.Ne7 Rd3 17.Rh2(0:00:19) 34668kN
[+1.26] d=27 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Rd7 6.Kg1 Nxd6 7.Rxg5 Nce4 8.Rh5 Nf7 9.Rh4 Nxf6 10.Ne3 Kg7 11.Rhf4 Nh5 12.Nf5 Kg6 13.Rg4 Kh7 14.Rg2 Nh6 15.Rff2 Rd5 16.Ne7 Rd3 17.Rh2 Rg3(0:00:19) 33693kN
[+1.19] d=26 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Rd7 6.Kg1 Nxd6 7.Rxg5 Nce4 8.Rh5 Nf7 9.Rh4 Nxf6 10.Ne3 Kg7 11.Rhf4 Nh5 12.Nf5 Kg6 13.Rg4 Kh7 14.Rg2 Nh6 15.Rff2 Rd5 16.Ne7 Rd3 17.Rh2 Rg3 18.Kf1(0:00:17) 29813kN
[+1.25] d=26 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Kg6 7.f7 Kxf7 8.Rxe4 Nxe4 9.Ng3 Nf6 10.Ne4 Ke6 11.Nxg5 Kd7 12.Rxf6 Rh8 13.Kg1 Rg8 14.Rf5 Kxd6 15.Kf2 Re8 16.Rf7 Kc6 17.Kf3(0:00:16) 28043kN
[+1.40] d=26 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Kg6 7.f7 Kxf7 8.Rxe4 Nxe4 9.Ng3 Nf6 10.Ne4 Ke6 11.Nxg5 Kd7 12.Rxf6 Rh8 13.Kg1 Rg8 14.Rf5 Kxd6 15.Kf2 Re8 16.Rf7 Kc6 17.Kf3 Kb6(0:00:14) 25687kN
[+1.32] d=26 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Kg6 7.f7 Kxf7 8.Rxe4 Nxe4 9.Ng3 Nf6 10.Ne4 Ke6 11.Nxg5 Kd7 12.Rxf6 Rh8 13.Kg1 Rg8 14.Rf5 Kxd6 15.Kf2 Re8 16.Rf7 Kc6 17.Kf3 Kb6 18.Kf4(0:00:14) 24991kN
[+1.40] d=25 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Kg6 7.f7 Kxf7 8.Rxe4 Nxe4 9.Ng3 Nf6 10.Ne4 Ke6 11.Nxg5 Kd7 12.Rxf6 Rh8 13.Kg1 Rg8 14.Rf5 Kxd6 15.Kf2 Re8 16.Rf7 Kc6 17.Kf3 Kb6 18.Kf4 Re1(0:00:12) 20798kN
[+1.36] d=25 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 b6 7.Kg2 Rd7 8.Kh3 Nxf6 9.Rb2 b5 10.Re2 Nce4 11.Rxe4 Nxe4 12.Ng3 Nf6 13.Ne4 Ke6(0:00:11) 20288kN
[+1.19] d=25 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 b6 7.Kg2 Rd7 8.Kh3 Nxf6 9.Rb2 b5 10.Re2 Nce4 11.Rxe4 Nxe4 12.Ng3 Nf6 13.Ne4 Ke6 14.Nxf6(0:00:11) 19297kN
[+1.42] d=25 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 b6 7.Kg2 Rd7 8.Kh3 Nxf6 9.Rb2 b5 10.Re2 Nce4 11.Rxe4 Nxe4 12.Ng3 Nf6 13.Ne4 Ke6 14.Nxf6 Rxd6(0:00:09) 16828kN
[+1.34] d=25 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 b6 7.Kg2 Rd7 8.Kh3 Nxf6 9.Rb2 b5 10.Re2 Nce4 11.Rxe4 Nxe4 12.Ng3 Nf6 13.Ne4 Ke6 14.Nxf6 Rxd6 15.Kg4(0:00:09) 16249kN
[+1.27] d=24 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 b6 7.Kg2 Rd7 8.Kh3 Nxf6 9.Rb2 b5 10.Re2 Nce4 11.Rxe4 Nxe4 12.Ng3 Nf6 13.Ne4 Ke6 14.Nxf6 Rxd6 15.Kg4 Rd3(0:00:08) 14399kN
[+1.37] d=24 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Nxd6 7.Nxd6 Rxd6 8.Re7 Kf8 9.f7 Re6 10.Rc7 Rc6 11.Rxc6 bxc6 12.Rf6 Nd3 13.Rxc6 Kxf7 14.Rxa6 Nf4 15.Kg1 Nd3 16.Kg2 Ne5(0:00:07) 12536kN
[+1.29] d=24 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Nxd6 7.Nxd6 Rxd6 8.Re7 Kf8 9.f7 Re6 10.Rc7 Rc6 11.Rxc6 bxc6 12.Rf6 Nd3 13.Rxc6 Kxf7 14.Rxa6 Nf4 15.Kg1 Nd3 16.Kg2 Ne5 17.Kf2(0:00:07) 12157kN
[+1.37] d=23 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Nxd6 7.Nxd6 Rxd6 8.Re7 Kf8 9.f7 Re6 10.Rc7 Rc6 11.Rxc6 bxc6 12.Rf6 Nd3 13.Rxc6 Kxf7 14.Rxa6 Nf4 15.Kg1 Nd3 16.Kg2 Ne5 17.Kf2 Nc4(0:00:06) 11101kN
[+1.34] d=23 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Nxd6 7.Nxd6 Rxd6 8.Re7 Kf8 9.Rh7 Ne4 10.Rc1 Rc6 11.Rxc6 bxc6 12.Ra7 a5 13.Kg2 g4 14.Rxa5 c5 15.Ra6 Kf7(0:00:06) 10757kN
[+1.27] d=23 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Nxd6 7.Nxd6 Rxd6 8.Re7 Kf8 9.Rh7 Ne4 10.Rc1 Rc6 11.Rxc6 bxc6 12.Ra7 a5 13.Kg2 g4 14.Rxa5 c5 15.Ra6 Kf7 16.Rc6(0:00:06) 10340kN
[+1.34] d=23 1.Bg5 Naxc5 2.Bxg6 Rxg5 3.hxg5 fxg6 4.gxf6 g5 5.Nf5 Kf7 6.Re2 Nxd6 7.Nxd6 Rxd6 8.Re7 Kf8 9.Rh7 Ne4 10.Rc1 Rc6 11.Rxc6 bxc6 12.Ra7 a5 13.Kg2 g4 14.Rxa5 c5 15.Ra6 Kf7 16.Rc6 Nxf6(0:00:05) 9524kN
For some reason CFish with Native=yes is worst than without, on my PC:
Phenom II x6 1090T @ 3.6 GHz
RR\1 core per engine\ 0.25 sec per move\ Cute Chess 0.9.4\ 16MB\ book:Hert500.pgn
Program Elo + - Games Score Av.Op. Draws
1 CFish_x64_180817_popcnt __________ : 3207 __ 2 __ 2 __ 5000 __ 52.0 % __ 3193 __ 62.2 %
2 CFish_x64_180817_Native_popcnt __ : 3193 __ 2 __ 2 __ 5000 __ 48.0 % __ 3207 __ 62.2 %
Sorry to open another issue, it is only a question:
What are the possible values for the uci parameter NUMA? Is it only to turn off and on NUMA?
Before I dive into your code, I would just like to know the extent to which you have optimized things. For example
have you used absolute indices in pieces lists?
have you used tail recursion to move SetCheckInfo to end of DoMove?
are domove, undomove, islegal, givescheck, ... fully optimized?
May I make a question?
what code I must add to engine source codes or what line I can modify to make engine play in a specific time and not depending on the GUI like Fritz to set the clock?
I mean is: engine plays for example 1 minute game in every game and not need to set time in the GUI or even engine not follow time in the GUI. Or it is not possible?!?!? Like using a no-GUI option
Gracias!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.