mirror of
https://github.com/sockspls/badfish
synced 2025-05-02 09:39:36 +00:00

Introduce variable tempo for nnue depending on logarithm of estimated strength, where strength is the product of time and number of threads. The original idea here was that NNUE is best with a slightly different tempo value to classical, since its style of play is slightly different. It turns out that the best tempo for NNUE varies with strength of play, so a formula is used which gives about 19 for STC and 24 for LTC under current fishtest settings. STC 10+0.1: LLR: 2.94 (-2.94,2.94) {-0.20,1.10} Total: 120816 W: 11155 L: 10861 D: 98800 Ptnml(0-2): 406, 8728, 41933, 8848, 493 https://tests.stockfishchess.org/tests/view/60735b3a8141753378960534 LTC 60+0.6: LLR: 2.94 (-2.94,2.94) {0.20,0.90} Total: 35688 W: 1392 L: 1234 D: 33062 Ptnml(0-2): 23, 1079, 15473, 1255, 14 https://tests.stockfishchess.org/tests/view/6073ffbc814175337896057f Passed non-regression SMP test at LTC 20+0.2 (8 threads): LLR: 2.95 (-2.94,2.94) {-0.70,0.20} Total: 11008 W: 317 L: 267 D: 10424 Ptnml(0-2): 2, 245, 4962, 291, 4 https://tests.stockfishchess.org/tests/view/60749ea881417533789605a4 closes https://github.com/official-stockfish/Stockfish/pull/3426 Bench 4075325
52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
/*
|
|
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
|
|
Copyright (C) 2004-2021 The Stockfish developers (see AUTHORS file)
|
|
|
|
Stockfish is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Stockfish is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef TIMEMAN_H_INCLUDED
|
|
#define TIMEMAN_H_INCLUDED
|
|
|
|
#include "misc.h"
|
|
#include "search.h"
|
|
#include "thread.h"
|
|
|
|
namespace Stockfish {
|
|
|
|
/// The TimeManagement class computes the optimal time to think depending on
|
|
/// the maximum available time, the game move number and other parameters.
|
|
|
|
class TimeManagement {
|
|
public:
|
|
void init(Search::LimitsType& limits, Color us, int ply);
|
|
TimePoint optimum() const { return optimumTime; }
|
|
TimePoint maximum() const { return maximumTime; }
|
|
TimePoint elapsed() const { return Search::Limits.npmsec ?
|
|
TimePoint(Threads.nodes_searched()) : now() - startTime; }
|
|
|
|
int64_t availableNodes; // When in 'nodes as time' mode
|
|
int tempoNNUE;
|
|
|
|
private:
|
|
TimePoint startTime;
|
|
TimePoint optimumTime;
|
|
TimePoint maximumTime;
|
|
};
|
|
|
|
extern TimeManagement Time;
|
|
|
|
} // namespace Stockfish
|
|
|
|
#endif // #ifndef TIMEMAN_H_INCLUDED
|