mehmet123 wrote: ↑Wed Dec 21, 2022 10:02 pm
After Stockfish 15, ~ 30 green patches had been added to Stockfish. Elo progress is ~6 elo at VLTC( 8 cores /30 sec +0.3) tests. Elo progress at rapid/ long time games most likely below 5 elo. If all these green patches are retested within at least 5 minutes of test condition, patches that weaken Stockfish may be detected as game time increases.
Thank god we have you throwing your magic dice that show you how to tweak the Stockfish parameters for a real real strong VVVVLTC engine.
BTW: Afaik including your object files is not necessary for GPL compliance.
Code: Select all
Nur in SRC-1.1/src: benchmark.o.
Nur in SRC-1.1/src: bitbase.o.
Nur in SRC-1.1/src: bitboard.o.
Nur in SRC-1.1/src: endgame.o.
diff -ur SRC-1.0a/src/evaluate.h SRC-1.1/src/evaluate.h
--- SRC-1.0a/src/evaluate.h 2022-11-19 21:38:06.000000000 +0100
+++ SRC-1.1/src/evaluate.h 2022-12-21 17:08:53.000000000 +0100
@@ -39,7 +39,7 @@
// The default net name MUST follow the format nn-[SHA256 first 12 digits].nnue
// for the build process (profile-build and fishtest) to work. Do not change the
// name of the macro, as it is used in the Makefile.
- #define EvalFileDefaultName "nn-154550620475.nnue"
+ #define EvalFileDefaultName "nn-335a9b2d8a80.nnue"
namespace NNUE {
Nur in SRC-1.1/src: evaluate_nnue.o.
Nur in SRC-1.1/src: evaluate.o.
Nur in SRC-1.1/src: half_ka_v2_hm.o.
Nur in SRC-1.1/src: main.o.
Nur in SRC-1.1/src: material.o.
diff -ur SRC-1.0a/src/misc.cpp SRC-1.1/src/misc.cpp
--- SRC-1.0a/src/misc.cpp 2022-11-21 19:41:46.000000000 +0100
+++ SRC-1.1/src/misc.cpp 2022-12-21 17:58:32.000000000 +0100
@@ -68,7 +68,7 @@
namespace {
/// Version number or dev.
-const string version = "1.0";
+const string version = "1.1";
/// Our fancy logging facility. The trick here is to replace cin.rdbuf() and
/// cout.rdbuf() with two Tie objects that tie cin and cout to a file stream. We
Nur in SRC-1.1/src: misc.o.
Nur in SRC-1.1/src: movegen.o.
Nur in SRC-1.1/src: movepick.o.
Nur in SRC-1.1/src: pawns.o.
Nur in SRC-1.1/src: polybook.o.
Nur in SRC-1.1/src: position.o.
Nur in SRC-1.1/src: psqt.o.
diff -ur SRC-1.0a/src/search.cpp SRC-1.1/src/search.cpp
--- SRC-1.0a/src/search.cpp 2022-11-21 18:31:06.000000000 +0100
+++ SRC-1.1/src/search.cpp 2022-12-21 18:27:03.000000000 +0100
@@ -787,7 +787,7 @@
// Use static evaluation difference to improve quiet move ordering (~3 Elo)
if (is_ok((ss-1)->currentMove) && !(ss-1)->inCheck && !priorCapture)
{
- int bonus = std::clamp(-19 * int((ss-1)->staticEval + ss->staticEval), -1925, 1925);
+ int bonus = std::clamp(-19 * int((ss-1)->staticEval + ss->staticEval), -1935, 1935);
thisThread->mainHistory[~us][from_to((ss-1)->currentMove)] << bonus;
}
@@ -804,7 +804,7 @@
// If eval is really low check with qsearch if it can exceed alpha, if it can't,
// return a fail low.
if ( depth < 8
- && eval < alpha - 312 - 260 * depth * depth)
+ && eval < alpha - 319 - 260 * depth * depth)
{
value = qsearch<NonPV>(pos, ss, alpha - 1, alpha);
if (value < alpha)
@@ -822,7 +822,7 @@
// The depth condition is important for mate finding.
if ( !ss->ttPv
&& depth < 8
- && eval - futility_margin(depth, improving) - (ss-1)->statScore / 303 >= beta
+ && eval - futility_margin(depth, improving) - (ss-1)->statScore / 298 >= beta
&& eval >= beta
&& eval < 28031) // larger than VALUE_KNOWN_WIN, but smaller than TB wins
return eval;
@@ -833,7 +833,7 @@
&& (ss-1)->statScore < 16979
&& eval >= beta
&& eval >= ss->staticEval
- && ss->staticEval >= beta - 20 * depth - improvement / 13 + 225 + complexity / 24
+ && ss->staticEval >= beta - 20 * depth - improvement / 13 + 220 + complexity / 24
&& !excludedMove
&& pos.non_pawn_material(us)
&& (ss->ply >= thisThread->nmpMinPly || us != thisThread->nmpColor))
@@ -877,7 +877,7 @@
}
}
- probCutBeta = beta + 189 - 49 * improving;
+ probCutBeta = beta + 189 - 51 * improving;
// Step 10. ProbCut (~4 Elo)
// If we have a good enough capture and a reduced search returns a value
@@ -946,7 +946,7 @@
moves_loop: // When in check, search starts here
// Step 12. A small Probcut idea, when we are in check (~0 Elo)
- probCutBeta = beta + 424;
+ probCutBeta = beta + 428;
if ( ss->inCheck
&& !PvNode
&& depth >= 2
@@ -1041,7 +1041,7 @@
&& !PvNode
&& lmrDepth < 7
&& !ss->inCheck
- && ss->staticEval + 204 + 195 * lmrDepth + PieceValue[EG][pos.piece_on(to_sq(move))]
+ && ss->staticEval + 224 + 188 * lmrDepth + PieceValue[EG][pos.piece_on(to_sq(move))]
+ captureHistory[movedPiece][to_sq(move)][type_of(pos.piece_on(to_sq(move)))] / 6 < alpha)
continue;
@@ -1065,7 +1065,7 @@
// Futility pruning: parent node (~9 Elo)
if ( !ss->inCheck
&& lmrDepth < 13
- && ss->staticEval + 120 + 139 * lmrDepth + history / 52 <= alpha)
+ && ss->staticEval + 135 + 133 * lmrDepth + history / 52 <= alpha)
continue;
// Prune moves with negative SEE (~3 Elo)
@@ -1106,7 +1106,7 @@
// Avoid search explosion by limiting the number of double extensions
if ( !PvNode
- && value < singularBeta - 21
+ && value < singularBeta - 32
&& ss->doubleExtensions <= 9)
extension = 2;
}
@@ -1131,7 +1131,7 @@
// Check extensions (~1 Elo)
else if ( givesCheck
&& depth > 9
- && abs(ss->staticEval) > 81)
+ && abs(ss->staticEval) > 84)
extension = 1;
// Quiet ttMove extensions (~0 Elo)
@@ -1204,14 +1204,14 @@
r--;
// Increase reduction if next ply has a lot of fail high
- if ((ss+1)->cutoffCnt > 2 && !PvNode)
+ if ((ss+1)->cutoffCnt > 4 && !capture)
r++;
ss->statScore = 2 * thisThread->mainHistory[us][from_to(move)]
+ (*contHist[0])[movedPiece][to_sq(move)]
+ (*contHist[1])[movedPiece][to_sq(move)]
+ (*contHist[3])[movedPiece][to_sq(move)]
- - 4433;
+ - 4388;
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
r -= ss->statScore / (16434 - 5880 / depth);
@@ -1229,9 +1229,11 @@
// Adjust full depth search based on LMR results - if result
// was good enough search deeper, if it was bad enough search shallower
const bool doDeeperSearch = value > (alpha + 64 + 11 * (newDepth - d));
+ const bool doEvenDeeperSearch = value > alpha + 582 && ss->doubleExtensions <= 5;
const bool doShallowerSearch = value < bestValue + newDepth;
- newDepth += doDeeperSearch - doShallowerSearch;
+ ss->doubleExtensions = ss->doubleExtensions + doEvenDeeperSearch;
+ newDepth += doDeeperSearch - doShallowerSearch + doEvenDeeperSearch;
if(newDepth>d)
value = -search<NonPV>(pos, ss+1, -(alpha+1), -alpha, newDepth, !cutNode);
Nur in SRC-1.1/src: search.o.
Nur in SRC-1.1/src: tbprobe.o.
Nur in SRC-1.1/src: thread.o.
Nur in SRC-1.1/src: timeman.o.
Nur in SRC-1.1/src: tt.o.
Nur in SRC-1.1/src: tune.o.
Nur in SRC-1.1/src: uci.o.