So we have to made an own compile and a own net with your testing code ?connor_mcmonigle wrote: ↑Sun Oct 18, 2020 7:23 am Seer 1.0
I've spent a good chunk of my free time this summer writing a chess engine in C++ which can be found here: https://github.com/connormcmonigle/seer ... s/tag/v1.0. It should, hopefully, play at around 2900-3000 elo if AVX2 extensions are available (around 300-400 knps should be expected with AVX2). It uses a custom NNUE implementation with training code written in PyTorch and inference code relying on OpenMP SIMD for auto vectorization.
I'm not providing any compiles at this time, though compiling Seer should, with any luck, be straight forward (compilation instructions can be found in the readme). I'd love to see my engine appear on various rating lists if that's a possibility.
Thanks in advance and be sure to inform me if you encounter any issues,
Connor
New engine releases 2020
Moderators: hgm, Rebel, chrisw
-
- Posts: 2912
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
Re: New engine releases 2020
Werner
-
- Posts: 42612
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
Re: New engine releases 2020
It would be more helpful if compiles were provided by the engine author.Werner wrote: ↑Sun Oct 18, 2020 11:13 amSo we have to made an own compile and a own net with your testing code ?connor_mcmonigle wrote: ↑Sun Oct 18, 2020 7:23 am Seer 1.0
I've spent a good chunk of my free time this summer writing a chess engine in C++ which can be found here: https://github.com/connormcmonigle/seer ... s/tag/v1.0. It should, hopefully, play at around 2900-3000 elo if AVX2 extensions are available (around 300-400 knps should be expected with AVX2). It uses a custom NNUE implementation with training code written in PyTorch and inference code relying on OpenMP SIMD for auto vectorization.
I'm not providing any compiles at this time, though compiling Seer should, with any luck, be straight forward (compilation instructions can be found in the readme). I'd love to see my engine appear on various rating lists if that's a possibility.
Thanks in advance and be sure to inform me if you encounter any issues,
Connor
gbanksnz at gmail.com
-
- Posts: 1394
- Joined: Sat Jul 21, 2018 7:43 am
- Location: Budapest, Hungary
- Full name: Gabor Szots
Re: New engine releases 2020
I get this error message:connor_mcmonigle wrote: ↑Sun Oct 18, 2020 7:23 am I'm not providing any compiles at this time, though compiling Seer should, with any luck, be straight forward (compilation instructions can be found in the readme).
EDIT: I used -fconstexpr-ops-limit=1000000000 in the command line and the above message disappeared but instead the I got a huge error file. As my compiling capabilities are very limited I will stop at this point. Please provide exes.In file included from include/move.h:11,
from include/position_history.h:6,
from include/board.h:15,
from include/uci.h:8,
from seer.cc:4:
include/table_generation.h:395:87: in 'constexpr' expansion of 'chess::slider_attack_tbl<12>(chess::piece_type::rook, chess::rook_deltas())'
include/table_generation.h:368:13: in 'constexpr' expansion of 'chess::over_all<chess::slider_attack_tbl<max_num_blockers>::slider_attack_tbl<std::array<chess::delta, 4> >::<lambda(chess::tbl_square)> >(<lambda closure object>chess::slider_attack_tbl<max_num_blockers>::slider_attack_tbl<std::array<chess::delta, 4> >::<lambda(chess::tbl_square)>{((chess::slider_attack_tbl<12>*)this), (* & deltas)})'
include/square.h:284:8: in 'constexpr' expansion of '(& f)->chess::slider_attack_tbl<max_num_blockers>::slider_attack_tbl<std::array<chess::delta, 4> >::<lambda(chess::tbl_square)>(chess::tbl_square{i, j})'
include/table_generation.h:372:51: in 'constexpr' expansion of 'chess::pdep_compile_time(blocker_data, ((uint64_t)mask.chess::square_set::data))'
include/table_generation.h:44:12: error: 'constexpr' evaluation operation count exceeds limit of 33554432 (use '-fconstexpr-ops-limit=' to increase the limit)
44 | if(src & bb){
| ~~~~^~~~
BTW, congratulations for making a 2900+ chess engine in one single summer. Many authors spend a lifetime to reach that level.
Gabor Szots
CCRL testing group
CCRL testing group
-
- Posts: 544
- Joined: Sun Sep 06, 2020 4:40 am
- Full name: Connor McMonigle
Re: New engine releases 2020
Thanks so much for the kind words! Your progress on Winter was a huge inspiration and motivated me to take a stab at chess programming. However, I wouldn't regard my testing code as anything commendable (it's hardly comprehensive as it really just serves to validate my incremental updates work via fuzzing and sanity check some things).
The network weights I'm currently using for testing can be found on the release page here (save.bin): https://github.com/connormcmonigle/seer ... s/tag/v1.0
When running the engine, the Weights UCI paramter must be set to the absolute path to the downloaded weights file. It would be unreasonable to expect people to train their own networks if they just wanted to use my engine.
My apologies. I guess I should have invested more time into providing binaries with the initial release. Let me elaborate on why I opted not to provide binaries at this time. To get reasonable performance, my engine has to be compiled for either SSE, AVX, AVX2 or AVX-512 depending on availablility. Additionally, BMI should be used if available. This would result in my distributing 8 separate binaries to effectively cover everyone's hardware. This sounds a bit like a nightmare to me. If you provide me with your system's specifications, I can hopefully produce an optimized compile for youGraham Banks wrote: ↑Sun Oct 18, 2020 11:15 am It would be more helpful if compiles were provided by the engine author.
-
- Posts: 42612
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
Re: New engine releases 2020
-Popcount (no bmi2)connor_mcmonigle wrote: ↑Sun Oct 18, 2020 12:07 pmMy apologies. I guess I should have invested more time into providing binaries with the initial release. Let me elaborate on why I opted not to provide binaries at this time. To get reasonable performance, my engine has to be compiled for either SSE, AVX, AVX2 or AVX-512 depending on availablility. Additionally, BMI should be used if available. This would result in my distributing 8 separate binaries to effectively cover everyone's hardware. This sounds a bit like a nightmare to me. If you provide me with your system's specifications, I can hopefully produce an optimized compile for you
-Bmi2/AVX
Also there are those who still like to use non-popcount.
gbanksnz at gmail.com
-
- Posts: 544
- Joined: Sun Sep 06, 2020 4:40 am
- Full name: Connor McMonigle
Re: New engine releases 2020
Thanks for the kind words and my apologies that you couldn't get it to compile. Clearly, I was way too optimistic about the difficulty associated with compiling my engine. If you provide me with your system's specifications, I can hopefully provide you with a compile.Gabor Szots wrote: ↑Sun Oct 18, 2020 11:21 am
I get this error message:EDIT: I used -fconstexpr-ops-limit=1000000000 in the command line and the above message disappeared but instead the I got a huge error file. As my compiling capabilities are very limited I will stop at this point. Please provide exes.In file included from include/move.h:11,
from include/position_history.h:6,
from include/board.h:15,
from include/uci.h:8,
from seer.cc:4:
include/table_generation.h:395:87: in 'constexpr' expansion of 'chess::slider_attack_tbl<12>(chess::piece_type::rook, chess::rook_deltas())'
include/table_generation.h:368:13: in 'constexpr' expansion of 'chess::over_all<chess::slider_attack_tbl<max_num_blockers>::slider_attack_tbl<std::array<chess::delta, 4> >::<lambda(chess::tbl_square)> >(<lambda closure object>chess::slider_attack_tbl<max_num_blockers>::slider_attack_tbl<std::array<chess::delta, 4> >::<lambda(chess::tbl_square)>{((chess::slider_attack_tbl<12>*)this), (* & deltas)})'
include/square.h:284:8: in 'constexpr' expansion of '(& f)->chess::slider_attack_tbl<max_num_blockers>::slider_attack_tbl<std::array<chess::delta, 4> >::<lambda(chess::tbl_square)>(chess::tbl_square{i, j})'
include/table_generation.h:372:51: in 'constexpr' expansion of 'chess::pdep_compile_time(blocker_data, ((uint64_t)mask.chess::square_set::data))'
include/table_generation.h:44:12: error: 'constexpr' evaluation operation count exceeds limit of 33554432 (use '-fconstexpr-ops-limit=' to increase the limit)
44 | if(src & bb){
| ~~~~^~~~
BTW, congratulations for making a 2900+ chess engine in one single summer. Many authors spend a lifetime to reach that level.
To note, I'm using CMake for my build system. If you have CMake installed on your system, all you have to do to produce a compile is:
cd build
cmake ..
make seer
-
- Posts: 544
- Joined: Sun Sep 06, 2020 4:40 am
- Full name: Connor McMonigle
Re: New engine releases 2020
Sorry if I'm not understanding. Perhaps my question wasn't clear. Your system has BMI2 and AVX (not AVX2)? If you provide me with the name of your CPU + your OS (Linux or Windows?), I should hopefully be able to provide you with a compile.Graham Banks wrote: ↑Sun Oct 18, 2020 12:13 pm -Popcount (no bmi2)
-Bmi2/AVX
Also there are those who still like to use non-popcount.
Last edited by connor_mcmonigle on Sun Oct 18, 2020 12:27 pm, edited 1 time in total.
-
- Posts: 347
- Joined: Tue Nov 19, 2019 4:34 am
- Location: https://github.com/TerjeKir/weiss
- Full name: Terje Kirstihagen
Re: New engine releases 2020
Thanks for testing, a bit smaller of a gap to 1.0 than I'd have expected - any chance you could add in 1.1?Rebel wrote: ↑Sun Oct 18, 2020 10:30 amSRL 1000ms +89Terje wrote: ↑Sun Oct 18, 2020 12:22 am Weiss 1.2 released with 120 self-play elo, I expect 80 or so in lists
https://github.com/TerjeKir/weiss/releases/tag/v1.2
Static exchange evaluation has sadly made Weiss a bit slower but on the plus side compiling is now easier - just 'make' will likely be optimal for any machine. Also no longer requires 'isready' (or anything else) before 'go'Cool....Code: Select all
The SRL rating list of : Sun Oct 18 10:23:08 2020 EPD : epd\lc1.epd Time : 1000ms Max Time Hash Engine Points Used Time Found Pos Elo Score Score ms Mb Cpu Errors 35 Weiss 1.2 293517 11:27:33.1 20047 40000 2935 400000 73.38% 1000 128 1 0 54 Weiss 1.0 284693 11:23:14.3 19241 40000 2846 400000 71.17% 1000 128 1 0
-
- Posts: 4712
- Joined: Wed Oct 01, 2008 6:33 am
- Location: Regensburg, Germany
- Full name: Guenther Simon
Re: New engine releases 2020
Would it be possible to add a makefile too? I really hate cmake, probably because I never got a working toolchain for it with msys2connor_mcmonigle wrote: ↑Sun Oct 18, 2020 12:07 pmMy apologies. I guess I should have invested more time into providing binaries with the initial release. Let me elaborate on why I opted not to provide binaries at this time. To get reasonable performance, my engine has to be compiled for either SSE, AVX, AVX2 or AVX-512 depending on availablility. Additionally, BMI should be used if available. This would result in my distributing 8 separate binaries to effectively cover everyone's hardware. This sounds a bit like a nightmare to me. If you provide me with your system's specifications, I can hopefully produce an optimized compile for you :)Graham Banks wrote: ↑Sun Oct 18, 2020 11:15 am It would be more helpful if compiles were provided by the engine author.
and don't want to spend more time on fixing it ;-)
-
- Posts: 544
- Joined: Sun Sep 06, 2020 4:40 am
- Full name: Connor McMonigle
Re: New engine releases 2020
Sure. That's totally understandable. I should be able to get around to adding a Makefile sometime soon. I'll let you know when I do.