misleading comments about simple evaluation in stockfish

Discussion of chess software programming and technical issues.

Moderator: Ras

Uri Blass
Posts: 10769
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

misleading comments about simple evaluation in stockfish

Post by Uri Blass »

https://abrok.eu/stockfish/

Author: cj5716
Date: Fri Feb 9 19:06:25 2024 +0100
Timestamp: 1707501985

Remove simple eval

With the recent introduction of the dual NNUE, the
need for simple eval is no longer there.

Passed STC:
https://tests.stockfishchess.org/tests/ ... 0db0281652
LLR: 2.96 (-2.94,2.94) <-1.75,0.25>
Total: 85312 W: 22009 L: 21837 D: 41466 Elo +0.70
Ptnml(0-2): 334, 10155, 21567, 10205, 395

Passed LTC:
https://tests.stockfishchess.org/tests/ ... 0db0282810
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 49956 W: 12596 L: 12402 D: 24958 Elo +1.35
Ptnml(0-2): 28, 5553, 13624, 5743, 30

I decided to look at the patch and I see that the comment is misleading.

I see the following code

int simpleEval = simple_eval(pos, stm);

bool smallNet = std::abs(simpleEval) > 1050;

Value nnue = smallNet ? NNUE::evaluate<NNUE::Small>(pos, true, &nnueComplexity)
: NNUE::evaluate<NNUE::Big>(pos, true, &nnueComplexity);

I understand that the meaning of the code is that stockfish is using simple evaluation to decide if to use small NNUE or big NNUE
I understand that stockfish does not use simpleeval as the evaluation of the position but the claim of removing simpleeval is wrong because stockfish still calculates it.

The correct comment about the patch should be "using simpleeval only as a condition for the choice of the net and never as an evaluation function".

I understand that earlier in some cases stockfish used simpleeval as the evaluation function.