Expose the lazy threshold for the feature transformer PSQT as a parameter.

Definition of the lazy threshold moved to evaluate.cpp where all others are.
Lazy threshold only used for real searches, not used for the "eval" call.
This preserves the purity of NNUE evaluation, which is useful to verify
consistency between the engine and the NNUE trainer.

closes https://github.com/official-stockfish/Stockfish/pull/3499

No functional change
This commit is contained in:
Tomasz Sobczyk
2021-05-25 13:09:40 +02:00
committed by Joost VandeVondele
parent e044068b43
commit 9d53129075
4 changed files with 12 additions and 13 deletions

View File

@@ -214,11 +214,12 @@ using namespace Trace;
namespace {
// Threshold for lazy and space evaluation
constexpr Value LazyThreshold1 = Value(1565);
constexpr Value LazyThreshold2 = Value(1102);
constexpr Value SpaceThreshold = Value(11551);
constexpr Value NNUEThreshold1 = Value(682);
constexpr Value NNUEThreshold2 = Value(176);
constexpr Value LazyThreshold1 = Value(1565);
constexpr Value LazyThreshold2 = Value(1102);
constexpr Value LazyThresholdNNUE = Value(1400);
constexpr Value SpaceThreshold = Value(11551);
constexpr Value NNUEThreshold1 = Value(682);
constexpr Value NNUEThreshold2 = Value(176);
// KingAttackWeights[PieceType] contains king attack weights by piece type
constexpr int KingAttackWeights[PIECE_TYPE_NB] = { 0, 0, 81, 52, 44, 10 };
@@ -1119,7 +1120,7 @@ Value Eval::evaluate(const Position& pos) {
int scale = 903 + 28 * pos.count<PAWN>() + 28 * pos.non_pawn_material() / 1024;
Value nnue = NNUE::evaluate(pos, true) * scale / 1024;
Value nnue = NNUE::evaluate(pos, true, LazyThresholdNNUE) * scale / 1024;
if (pos.is_chess960())
nnue += fix_FRC(pos);