Comments (10)
Please send me the FEN of the position in question.
It is important to note Berserk will output what it is thinking and not necessarily the best move. During a certain depth Berserk will output moves that hit the bounds of its current aspiration windows.
I'm not sure what other engines you're comparing it too, but this is fairly standard AFAIK once a certain time has been eclipsed (allowing the user to see the engine is still calculating rather than frozen).
from berserk.
r1bq1rk1/ppp2pp1/2n2n1p/1Bp1p3/4P3/2NP1N2/PPP2PPP/R2Q1RK1 b - - 0 9
btw this happens with all FENs .. i recorded a small screencast of Berserk and Pedone, showing their different listing .. when using mpv many engines show the next mpv listing in SCID after all mpv are calculated .. other engines (like Ethereal) show each mpv eval directly after it's calculated .. here Berserk behaves strange and unlogical, it must be a bug ..
berserk_bestmovenextdepth.mp4
from berserk.
i would think that "play what it's thinking" when time's up can often give a suboptimal result .. why does Berserk not show the best move of the last finished depth ? I have no insight in engine coding, i'm just a user ..
from berserk.
Berserk prints what it's thinking, but that's not the "bestmove" that will necessarily be printed when a non-infinite search completes. In order for the "bestmove" to be changed, the depth must be fully completed, and a move must be found within the determined aspiration window.
I will look at this closer to see if I can determine why Berserk is printing such a short PV regardless.
from berserk.
The reason for this short output is due to a reset of the PV table at the start of the Negamax
method. (See here)[https://github.com/jhonnold/berserk/blob/main/src/search.c#L251]. Then, most likely a cutoff is occurring which then causes a short PV to be returned. In many cases no bestmove
has been even added to the PV table, but Berserk force prints whatever is in the first slot of the PV table. (See here)[https://github.com/jhonnold/berserk/blob/main/src/search.c#L747]. This second line may be the reason for issues with SCID?
Either way, I checked 3 other engines to validate that short pv printing isn't uncommon:
You can see in the outputs for all 3 of those engines, short PVs are printed.
from berserk.
it's not only about "short pv printing" .. it's mainly about the fact that at each depth Berserk shows a list where the move-on-top is of the next (!?) depth .. almost no other engine does that .. the ones you tested differ in the way they show their mpv lists while increasing depth .. this short video shows the SCID output of all your 3 engines concerning my FEN, plus Berserk at the end :
3_engines_and_berserk_mpv_list_scid.mp4
Ethereal and SF build / refresh their list during calculation, while Weiss shows the whole list of any next depth as soon as all mpv moves are calculated.
your pastebin listings are not a good test, you should test in SCID, because this program gives the wrong listing - whatever the cause ..
from berserk.
For future reference this issue is not related to the printing of a short pv in general, but the printing of a short pv in the case of MultiPV being enabled and hanging for a long time.
I know why this is the case and implemented this way due to trying to support another program called nibbler. I will work to support both SCID output and nibbler together. A 4.5.2
release that addresses this will be around eventually.
from berserk.
OK .. i know nibbler - it's is made for Leela but also supports normal A/B UCI engines, although this support is limited by design -- some weeks ago i communicated about this with the creator .. SCID might have a different protocol / handling of the UCI info lines, but many engines feed their info lines properly to SCID and so should Berserk i think .. btw. all (my) Ethereal versions have slight problems with their MPV list in SCID : the top-N moves are (sometimes) not properly sorted by eval, which is annoying, while most other engines do ..
from berserk.
This should no longer be an issue on the main
branch.
from berserk.
yes, it's solved !
i compiled the main code by git clone and i got a (avx2) binary called v5.0.0-dev which has a different byte size then (the) previous v5.0.0-dev, so it's different, and indeed in SCID the concerning issue does NOT happen !
Thanks !
from berserk.
Related Issues (20)
- Android compatibility HOT 2
- How to get bmi2 edition? HOT 1
- Berserk 11.1avx2 pext can`t run on win`s GUI HOT 6
- Building berserk on MacOS Ventura HOT 5
- Redefine error in "accumulator.h" (commit c52868e) HOT 3
- Berserk 11.1 time management issue leads to regularly losing games it would otherwise win HOT 12
- Berserk 11 Critical Blunder HOT 13
- Berserk NNUE Source HOT 1
- Berserk NNUE Bug HOT 3
- Segmentation Fault HOT 3
- Problem in Arena with "Time per move" HOT 2
- Detect mate with Eval? HOT 5
- Strange behaviour under Windows HOT 10
- Berserk-12-Official release (Windows_x64_avx2 binary). FRC/Chess960. GUI: Cutechess 1.2. Berserk blunders in one move to lose the games. Some examples. PGN HOT 3
- Error - Berserk 12 HOT 5
- Bug of making losing moves without calculation HOT 1
- OpenBench access HOT 2
- New berserk-NN to download HOT 2
- How to get stated with NNUE HOT 1
- compile error on arm64 aarch64 with gcc or clang on RaspBerry 4 HOT 1
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 berserk.