Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

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

Moderators: hgm, Rebel, chrisw

Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Pi4Chess »

jshriver wrote: Fri Dec 18, 2020 4:07 pm Ordered the CanaKit Pi 4 8gig ram extreme edition :) wont be here till the 23rd though, excited!
5 more days ! An eternity lmao ;-)
Archimedes
Posts: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Archimedes »

Pi4Chess wrote: Fri Dec 18, 2020 4:43 pm
Archimedes wrote: Fri Dec 18, 2020 4:22 pm
Archimedes wrote: Fri Dec 18, 2020 3:42 pm Could you please test, wether this version works for your environment.

Halogen 9:
https://app.box.com/s/zzaj5to2nlm9baojhdixk92rpfp530zn
This builds are static builds. :wink:
Thanks for your help testing this issue Archimedes.

The engine is not recognized as an engine when installing in arena. But forcing the path to file and starting the engine it says in a window ;

Code: Select all

/home/xxxxx/SRC2/arm64-v8a/Halogen

Executable bit not set. Would you like to set the executable bit and continue?

Warning: Executing programs from unknown source can damage your computer.
i Say yes and then it works.... BUT at 990 kns while the complied version i am testing since yesterday does 1990 kns on same position and conditions and with same evaluation score.

You binary is 1,8 M while mine is 979 Ko. When using Pedone's armv8 i did not have to do this manipulation and did not have this window.

I don't think -static is the only cause and may be ndk is adressing specific android librairies ONLY while the compiler of Pedone is adressing more universal librairies or at least linux compatible ones ?
The executable bit was not set, because it was compiled with Windows (Android NDK r22). The nps are indeed very slow, also with the non static builds. I would say, we don't care about it for the moment.

Here is another test with Ethereal. Static builds, compiled with Debian and Android NDK r21d.

Ethereal 12.77:
https://app.box.com/s/vcqupotfm9a0h7nt6gxn2bi7i7uosz5g
Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Pi4Chess »

Archimedes wrote: Fri Dec 18, 2020 11:10 pm The executable bit was not set, because it was compiled with Windows (Android NDK r22). The nps are indeed very slow, also with the non static builds. I would say, we don't care about it for the moment.

Here is another test with Ethereal. Static builds, compiled with Debian and Android NDK r21d.

Ethereal 12.77:
https://app.box.com/s/vcqupotfm9a0h7nt6gxn2bi7i7uosz5g
Same as Halogen (bit set) but kns is around 940 for this build while my 12.75 build is 1050 kns average. Don't know if its compilation or version that explains the speed difference.

It's better than for Halogen if you changed something in compilation options.
Archimedes
Posts: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Archimedes »

So we are on the right way.

With static builds it works also in your environment. The missing executable bit comes from file handling with windows (i made the zip archive with windows). Don't care about it.

The difference in speed comes from different compiler settings. And, may be, from different compilers. May be you are using the native compiler flag, which is always a good idea when compiling for yourself, for your hardware (but could result in compatibility issues with other devices). And if you produces profile guided optimization (pgo) builds, they are also faster than builds without it.

Last but not least, i did a short test with DroidFish. The non static build of Ethereal 12.77 shows me after 10 seconds around 550 kns from the start position. The static build shows me after 10 seconds only around 535 kns from the start position. The non static build is definitely faster, than the static build. The settings between the compiles are identical.
Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Pi4Chess »

Archimedes wrote: Sat Dec 19, 2020 12:40 am So we are on the right way.

With static builds it works also in your environment. The missing executable bit comes from file handling with windows (i made the zip archive with windows). Don't care about it.

The difference in speed comes from different compiler settings. And, may be, from different compilers. May be you are using the native compiler flag, which is always a good idea when compiling for yourself, for your hardware (but could result in compatibility issues with other devices). And if you produces profile guided optimization (pgo) builds, they are also faster than builds without it.
Ok nice. I always use the available makefile and i only remove eventually some flags that do not work like -m64 -mpopcnt when they give error.

I don't use the native flag unless it is already in the makefile. Common optimizing flags are -O3 and -flto
Archimedes
Posts: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Archimedes »

I do not using the makefiles, because there is not always support for Android inside. Sometimes there is no makefile present. And every makefile is different structured. I need a system, which is independent of makefiles. But i always take a look in to the makefile and often in to the source code also for source dependent compiler definitions and so on.

I'm using -O3, -flto, -fno-stack-protector and -fomit-frame-pointer as target independent compiler settings, which works with all chess engines so far. Android NDKs ndk-build do the rest (hopefully with a good balance between runtime performance and compatibility).
Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Pi4Chess »

Archimedes wrote: Sat Dec 19, 2020 1:22 am I do not using the makefiles, because there is not always support for Android inside. Sometimes there is no makefile present. And every makefile is different structured. I need a system, which is independent of makefiles. But i always take a look in to the makefile and often in to the source code also for source dependent compiler definitions and so on.

I'm using -O3, -flto, -fno-stack-protector and -fomit-frame-pointer as target independent compiler settings, which works with all chess engines so far. Android NDKs ndk-build do the rest (hopefully with a good balance between runtime performance and compatibility).
I understand. Then you could possibly see the engines i did not managed to compile for armv8/rpi4 (they are not in the list) and try yourself with -static option ;-)

But the main purpose of this topic is to show that rpi4 is a nice and working arch for their engines so that authors themselves include rpi4 platform in their releases. If we could give them an easy tutorial to build working rpi4 exec since many already do armv8 executables for android, with ndk, or clang/gcc, it would be awesome.
Last edited by Pi4Chess on Sat Dec 19, 2020 2:02 am, edited 2 times in total.
Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Pi4Chess »

Added 4 compilations today :

-Stashbot 25 (the last compilation i did as v25 was actually v24.7)
-Halogen 9 (I have put its net since i don't know if the net is in the binary or not.... net is 3Mb and binary is less than 1Mb)
-SugarAI 1.10 (included the experience file of more than 170mb and last SF net)
-SugarAI ICCF 1.10 (This version is for correspondence play and it seems it has some dedicated uci options). copy the experience file + net from the other Sugar folder ;-)

30 days download file : https://pixeldrain.com/u/bmbZNXy6

They will be added into the collection targz later when updated.
Archimedes
Posts: 135
Joined: Tue Mar 05, 2019 3:43 pm
Full name: Archimedes

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Archimedes »

Pi4Chess wrote: Sat Dec 19, 2020 1:42 am I understand. Then you could possibly see the engines i did not managed to compile for armv8/rpi4 (they are not in the list) and try yourself with -static option ;-)
It's not a big deal, i can help you, but i think, it is better, you ask me for compilations, which makes problems, die to compilation errors, which i have already compiled successfull. Die to the amount of compilations you've done, i lost the track.

Chess Engines for Android
Pi4Chess
Posts: 253
Joined: Mon Nov 16, 2020 12:13 pm
Full name: Manuel Rivera

Re: Chess Engines binaries for Raspberry Pi 4 Linux 64 bits

Post by Pi4Chess »

Archimedes wrote: Sat Dec 19, 2020 3:02 am
Pi4Chess wrote: Sat Dec 19, 2020 1:42 am I understand. Then you could possibly see the engines i did not managed to compile for armv8/rpi4 (they are not in the list) and try yourself with -static option ;-)
It's not a big deal, i can help you, but i think, it is better, you ask me for compilations, which makes problems, die to compilation errors, which i have already compiled successfull. Die to the amount of compilations you've done, i lost the track.

Chess Engines for Android
That's nice :-) In the list you just provided I did not managed to compile : Seer (compiled but not working) , Scorpio (this is a big factory omg even on windows 7 i couldn't make it work properly), Xiphos, Tucano, Koivisto, Zurichess,Cheng 4, Frankygo, Hakkapellita, Topple, Hippocampe, monchester, ceechess.

And others that are not in your list and i couldn't compile : Winter, Fabchess.