Matthies / RubiChess

Another chess engine
GNU General Public License v3.0
155 stars 17 forks source link

Embedded NNUE #375

Closed Negatil07 closed 1 year ago

Negatil07 commented 1 year ago

How to compile with embedded nnue (not default Rubinet) in clang? After compile using default net after ./RubiChess compiler, the nnue not exist.

Matthies commented 1 year ago

Compiling with embedded network is not supported very well, I only implemented it cause OpenBench needs it for running tests. My implementation doesn't use INCBIN lib as many other engines but the "link binary" feature of ld and compiling with clang uses different linker lld which doesn't support (or may does support but with different arguments). Why do you want compiling with embedded net?

Negatil07 commented 1 year ago

RubiChess works only if the nnue network place on log folder on droidfish.

Matthies commented 1 year ago

So you are Josef who discusses the problem with me at talkchess PM? Then we should continue there (on german) and I will update this issue here when we found a solution (or not). If you are not Josef, then I can tell you that this guy already pointed me on this problem and we will try to find a solution.

Negatil07 commented 1 year ago

I am not Josef.

Matthies commented 1 year ago

Okay, then we may talk about a slightly different issue although both are about running RubiChess in Droidfish. This is what is working file in Linux: make profile-build COMP=clang EVALFILE=default If you really want to embed a different network (I highly recommend to use the default which is the strongest), you can use ... EVALFILE=/path/to/network/file.nnue It doesn't work in Windows/Mingw64 (linker cannot handle the embedding parameters) and I don't know if it works in Android. In fact I have no clue how RubiChess is compiled under or for Android.

Negatil07 commented 1 year ago

how to add EVALFILE=default on Android.mk (ndk)

Negatil07 commented 1 year ago

Now is working on Droidfish, good work., thumbs-up.