Introducing Igel chess engine

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
AlexChess
Posts: 1486
Joined: Sat Feb 06, 2021 8:06 am
Full name: Alex Morales

Re: Introducing Igel chess engine

Post by AlexChess »

voffka wrote: Sat Apr 17, 2021 3:42 pm
AlexChess wrote: Sat Apr 17, 2021 1:50 pm
If you could compile Igel 3.0.0 Neon also for macOS M1 native, I'll be very happy. I alternate the tests on all 3 operating systems using Arena (Win) , BanksiaGUI (Mac) and Cutechess (Ubuntu ARM64)
It is an interesting challenge because I have no Apple devices. I will see what I can do.
Thank you!
Chess engines and dedicated chess computers fan since 1981 :D Mac mini M1 8GB-256GB, Windows 11 & Ubuntu ARM64.
ProteusSF Dev Forum: https://shorturl.at/bpvI1
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Introducing Igel chess engine

Post by Dann Corbit »

For some reason, I cannot build your engine properly.
I used cmake to create visual studio projects and it built something, but it did not find the nodes file and the uci form for arena is blank.
It still plays chess, so I guess it is using the ordinary evaluation.
I tried using mingw and it found the nodes file, but most of the fields are missing from the uci input form for arena.
I cannot tell the mingw version where the syzygy files are. I did look at the build command line, and the macro to define SYZYGY was there.
This is what I see when I run make:
$ make
g++ -Wall -std=c++17 -mpopcnt -pthread -static -msse -msse2 -msse3 -msse4.1 -mavx2 -O3 -march=native -flto -DEVALFILE=\"weights/ign-1-139b702b\" *.cpp nnue/*.cpp nnue/features/*.cpp fathom/tbprobe.c -DNDEBUG -DEVAL_NNUE=1 -D_BTYPE=0 -DSYZYGY_SUPPORT=TRUE -DUSE_SSE2=1 -DUSE_SSSE3=1 -DUSE_SSE41=1 -DUSE_AVX2=1 -o igel

The one that was built on your website does work for me. The UCI parameters all show up like they are supposed to.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: Introducing Igel chess engine

Post by voffka »

Hello Dann,
Dann Corbit wrote: Sun Apr 18, 2021 4:42 am This is what I see when I run make:
$ make
g++ -Wall -std=c++17 -mpopcnt -pthread -static -msse -msse2 -msse3 -msse4.1 -mavx2 -O3 -march=native -flto -DEVALFILE=\"weights/ign-1-139b702b\" *.cpp nnue/*.cpp nnue/features/*.cpp fathom/tbprobe.c -DNDEBUG -DEVAL_NNUE=1 -D_BTYPE=0 -DSYZYGY_SUPPORT=TRUE -DUSE_SSE2=1 -DUSE_SSSE3=1 -DUSE_SSE41=1 -DUSE_AVX2=1 -o igel

The one that was built on your website does work for me. The UCI parameters all show up like they are supposed to.
Thanks for reaching out. Can you please show the whole console output when you run the g++ command? If you see no error output after you run it, it means Igel.exe was compiled and placed in src folder.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Introducing Igel chess engine

Post by Dann Corbit »

voffka wrote: Sun Apr 18, 2021 1:33 pm Hello Dann,
Dann Corbit wrote: Sun Apr 18, 2021 4:42 am This is what I see when I run make:
$ make
g++ -Wall -std=c++17 -mpopcnt -pthread -static -msse -msse2 -msse3 -msse4.1 -mavx2 -O3 -march=native -flto -DEVALFILE=\"weights/ign-1-139b702b\" *.cpp nnue/*.cpp nnue/features/*.cpp fathom/tbprobe.c -DNDEBUG -DEVAL_NNUE=1 -D_BTYPE=0 -DSYZYGY_SUPPORT=TRUE -DUSE_SSE2=1 -DUSE_SSSE3=1 -DUSE_SSE41=1 -DUSE_AVX2=1 -o igel

The one that was built on your website does work for me. The UCI parameters all show up like they are supposed to.
Thanks for reaching out. Can you please show the whole console output when you run the g++ command? If you see no error output after you run it, it means Igel.exe was compiled and placed in src folder.
That is exactly what happened. It was compiled and placed in the src folder. But when I run it, the UCI commands mostly do not function.
The warnings for the tablebase probes are gone because I fixed the two format errors.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: Introducing Igel chess engine

Post by voffka »

Dann Corbit wrote: Sun Apr 18, 2021 5:26 pm That is exactly what happened. It was compiled and placed in the src folder. But when I run it, the UCI commands mostly do not function.
... and before you run the g++ command you also created a folder weights inside src and you downloaded the official network file ign-1-139b702b to it, right? so the path to network is: weights/ign-1-139b702b

Please confirm.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Introducing Igel chess engine

Post by Dann Corbit »

voffka wrote: Sun Apr 18, 2021 5:28 pm
Dann Corbit wrote: Sun Apr 18, 2021 5:26 pm That is exactly what happened. It was compiled and placed in the src folder. But when I run it, the UCI commands mostly do not function.
... and before you run the g++ command you also created a folder weights inside src and you downloaded the official network file ign-1-139b702b to it, right? so the path to network is: weights/ign-1-139b702b

Please confirm.
yes, I did that
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: Introducing Igel chess engine

Post by voffka »

Dann Corbit wrote: Mon Apr 19, 2021 5:22 pm yes, I did that
Thanks Dann. Can you please make a screenshot of Igel after you type uci and press enter?

Also, do you see any crash entry in Windows Event Log? If so, can you please copy it here.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Introducing Igel chess engine

Post by Dann Corbit »

No crashes, I guess the problem is buffering. You probably build on Unix which as line buffering as a default, and Windows default is full buffering.
For this reason, string based protocols can be problematic on Windows unless you change the buffering for all of the I/O that needs changed.
std::cerr has line buffering by default.
You can just do this:
you can use the flag std::ios_base::unitbuf to set the default to line buffering.

Code: Select all

C:\Users\dannc\chess\igel-master\src>igel
Igel 3.1-dev-2 64 POPCNT by V. Medvedev, V. Shcherbyna
uci
id name Igel 3.1-dev-2 64 POPCNT
id author V. Medvedev, V. Shcherbyna
option name Hash type spin default 128 min 1 max 1048576
option name Threads type spin default 1 min 1 max 1024
option name SyzygyPath type string default <empty>
option name SyzygyProbeDepth type spin default 1 min 1 max 128
option name Ponder type check default false
option name Skill Level type spin default 20 min 0 max 20
uciok
Looks fine here.
Not sure what was wrong now. I just loaded it again and I saw the options.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
voffka
Posts: 288
Joined: Sat Jun 30, 2018 10:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna

Re: Introducing Igel chess engine

Post by voffka »

Dann Corbit wrote: Mon Apr 19, 2021 9:35 pm Not sure what was wrong now. I just loaded it again and I saw the options.
:wink: glad to see it works well.
User avatar
AlexChess
Posts: 1486
Joined: Sat Feb 06, 2021 8:06 am
Full name: Alex Morales

Re: Introducing Igel chess engine

Post by AlexChess »

voffka wrote: Sat Apr 17, 2021 11:17 am Hello Alex,
AlexChess wrote: Sat Apr 17, 2021 7:45 am [...] Much better, it is faster than CFISH!!! (on Arena). [...]
Glad to see it is faster, I was having some doubts as the NEON code did not compile well on Visual Studio, so I had to do some blind hacks as I could not test.

Regarding the overall setup you have, I am wondering why having an added layer of virtualization (e.g. a virtual machine with Windows ARM64) if you can run your tourneys natively on macOS M1 chip? I think the performance should be even better for native run. Is it because Arena only runs on Windows?
Hi! Acepoint has kindly compiled your Igel 3.0.0 NNUE also for M1 native. You can find the binary here https://acepoint.de/honey-igel-and-mayhem/ . On Windows 10 ARM64 It is fast and stabile and has the strengh of Dragon and Ethereal after first tests.
Chess engines and dedicated chess computers fan since 1981 :D Mac mini M1 8GB-256GB, Windows 11 & Ubuntu ARM64.
ProteusSF Dev Forum: https://shorturl.at/bpvI1