Comments (12)
Hi, I am unable to reproduce this behavior for both manually embedded NNUE files (via make release evalfile=absolute/path/to/...nnue
) and with the cutechess-gui settings. I am also on Ubuntu 22.04 and everything seems to work.
-
Please make sure that you embed NNUE files only from this repository since other network files might use a different network structure and thus incompatible weights and biases.
-
Also note that the path for for the NNUE file should be absolute.
from chai.
i kind of solved it thanks to your tips .. i did several compiles, but the only one (not sure though) that works is compiling by just make release
and adding the (absolute path to) the nnue file as value of the EvalFile in the CuteChess options window .. this way Chai also plays in CuteChess without the nnue file .. so, embedding a nnue file while compiling does not work here .. i have a rarher modern notebook with avx2, but when i enable this option while compiling, the binary seems OK in terminal but in CuteChess it fails .. its log shows no errors etc. .. what do you suggest to fully solve this for me? i can show you logs or terminal output ..
from chai.
btw. i have no spaces in my path .. so adding quotes wouldn't be needed !?
from chai.
Hi, a few comments:
- The AVX2 flag is enabled by default. It does not make a difference if you actively choose
avx2=y
. (same for ssse3) - Do not use quotes for the evalfile path. For example, I use
make release evalfile=~/Downloads/nn-5e6b321f90-20221001.nnue -j
- Loading a NNUE file with the evalfile settings option in the CuteChess GUI should also be the common choice. If that works for you, I do not see further issues. (?)
- If you still want to embed a NNUE file during compilation, try the following: After compiling with the evalfile option, run the engine from terminal (with
./chai_v3.4.2
). Then, you should see a logNNUE is now active.
and if you types
, a test search is performed. If any errors are shown, these would be helpful for me to solve the issue for you. If there are no errors, then this binary also has to work with CuteChess. - Also, which NNUE file are you using?
from chai.
thanks. As i stated, in fact i solved the problem, i can compile and run Chai v3.4.2 now, but today i will try and test more, according to your info .. then we can find the error or my mistake :-)
from chai.
i must still find the time to test .. maybe later.
from chai.
i just compiled again (by just make release
) and i discovered not all NNUE files seem to work :
$ ./chai_v3.4.2_compiled
chai v3.4.2
assert=0 buckets=3 threads=1/2 hashMb=256 simd=AVX2
compiler=gnu 11.3.0 date=Dec 20 2022
uci
id name chai_v3.4.2
id author Jakob Hackstein
option name Hash type spin default 256 min 2 max 8192
option name Threads type spin default 1 min 1 max 2
option name SyzygyPath type string default ""
option name EvalFile type string default ""
uciok
ucinewgame
setoption name EvalFile value /home/roelof/Apps/ChessEngines/Chai/nn-b1c332ae1d-20220613.nnue
info string Error: NNUE parsed incorrect hash value.
setoption name EvalFile value /home/roelof/Apps/ChessEngines/Chai/nn-7e8d2f1670-20220202.nnue
info string NNUE parsed successfully.
As you can see this is a test from the command line. Then i do eg. "go depth 16" and Chai nicely gives info lines and comes with a best move. But in CuteChess it still fails : "(Black) disconnects" .. NOTE: i filled the absolute path of that nn-7e8d2.. nnue file, without quotes.
from chai.
Some NNUE files indeed throw an error, thank you for letting me know. I refer to third-party weights including a hash verification, which I re-implemented. Although both of your tested networks have the same structure and pass all my tests, one hash verification fails. I updated chai to only warn about this issue and not fail anymore (since the nets seem to work fine), so you can use both networks now.
I also tried to reproduce the cutechess error but it is working on my end. In the GUI, I just added the /home/.../...nnue
path and when using the cli, I use the following command:
./cutechess-cli -engine name=chai1 cmd=./chai_v3.4.2 dir=/home/jakhac/Repositories/cutechess/engines option.EvalFile=/home/jakhac/Repositories/chai/nets/nn-7e8d2f1670-20220202.nnue -engine name=chai2 cmd=./chai_v3.4.2 dir=/home/jakhac/Repositories/cutechess/engines option.EvalFile=/home/jakhac/Repositories/chai/nets/nn-7e8d2f1670-20220202.nnue -each proto=uci tc=40/60 -rounds 10 -debug
which also works. It is really hard to fix this issue if I am unable to reproduce it, but maybe the cli command is working for you.
from chai.
you're almost there : i tested the newest version (compiled cloned src) and indeed it works with both those NNs -- i saw the warning about the NNUE .. but i discovered this : it only works in CuteChess GUI with Hash 256 Mb : when setting 128 Mb Hash Chai fails with "(Black) disconnects" !? Maybe you did test with that default 256 Mb and could not reproduce "my" error ..
from chai.
btw. normally i give each engine max 128 Mb and 2 threads.
from chai.
Yep, the engine crashed after resizing the hash table! This is fixed now in the latest commit. I believe that the NNUE verification and Hash-resizing were the only problems, but let me know if there are further issues.
from chai.
yes, i think you solved the NNUE and the Hash issue : i tested the newest compile in CuteChess GUI with 128 Mb Hash, with(out) NNUE and i no longer have problems. Maybe you should update the version number ?
from chai.
Related Issues (3)
- quit HOT 2
- how to use Perft ? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chai.